From 15f6a47897d9c5ab91aa68da0c19cac5c5501fad Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Tue, 24 Oct 2023 12:46:57 -0700 Subject: [PATCH] Implement healing maze techniques --- .../data/config/SkillAbilityInfo.java | 8 +++--- .../game/battle/skills/MazeSkillModifyHP.java | 25 +++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 src/main/java/emu/lunarcore/game/battle/skills/MazeSkillModifyHP.java diff --git a/src/main/java/emu/lunarcore/data/config/SkillAbilityInfo.java b/src/main/java/emu/lunarcore/data/config/SkillAbilityInfo.java index 68ad97e..64748f6 100644 --- a/src/main/java/emu/lunarcore/data/config/SkillAbilityInfo.java +++ b/src/main/java/emu/lunarcore/data/config/SkillAbilityInfo.java @@ -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)); diff --git a/src/main/java/emu/lunarcore/game/battle/skills/MazeSkillModifyHP.java b/src/main/java/emu/lunarcore/game/battle/skills/MazeSkillModifyHP.java new file mode 100644 index 0000000..0eee84f --- /dev/null +++ b/src/main/java/emu/lunarcore/game/battle/skills/MazeSkillModifyHP.java @@ -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) { + + } + +}