Implement healing maze techniques

This commit is contained in:
Melledy
2023-10-24 12:46:57 -07:00
parent ba14f207c3
commit 15f6a47897
2 changed files with 29 additions and 4 deletions

View File

@@ -3,10 +3,7 @@ package emu.lunarcore.data.config;
import java.util.List;
import emu.lunarcore.data.excel.AvatarExcel;
import emu.lunarcore.game.battle.skills.MazeSkill;
import emu.lunarcore.game.battle.skills.MazeSkillAction;
import emu.lunarcore.game.battle.skills.MazeSkillAddBuff;
import emu.lunarcore.game.battle.skills.MazeSkillModifySP;
import emu.lunarcore.game.battle.skills.*;
import lombok.Getter;
/**
@@ -55,6 +52,9 @@ public class SkillAbilityInfo {
actionList.add(new MazeSkillAddBuff(task.getID(), 20));
} else if (task.getType().contains("RemoveMazeBuff")) {
actionList.removeIf(action -> action instanceof MazeSkillAddBuff actionAdd && actionAdd.getBuffId() == task.getID());
} else if (task.getType().contains("AdventureModifyTeamPlayerHP")) {
// TODO get hp increase value from params
actionList.add(new MazeSkillModifyHP(15));
} else if (task.getType().contains("AdventureModifyTeamPlayerSP")) {
// TODO get sp increase value from params, also handle target alias
actionList.add(new MazeSkillModifySP(50));

View File

@@ -0,0 +1,25 @@
package emu.lunarcore.game.battle.skills;
import emu.lunarcore.game.avatar.GameAvatar;
import emu.lunarcore.game.battle.Battle;
import emu.lunarcore.proto.MotionInfoOuterClass.MotionInfo;
public class MazeSkillModifyHP extends MazeSkillAction {
private int amount;
public MazeSkillModifyHP(int hp) {
this.amount = hp * 100;
}
@Override
public void onCast(GameAvatar caster, MotionInfo castPosition) {
caster.getOwner().getCurrentLineup().heal(this.amount, false);
// TODO Perhaps we should send a sync lineup packet here
}
@Override
public void onAttack(GameAvatar caster, Battle battle) {
}
}