From 929710bc06a9a75624320e8c8fcd5e18ee5c4fde Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Tue, 3 Oct 2023 21:39:33 -0700 Subject: [PATCH] Implement handler for `AdventureModifyTeamPlayerSP` --- .../emu/lunarcore/data/config/SkillAbilityInfo.java | 5 +++++ .../game/battle/skills/MazeSkillModifySP.java | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/emu/lunarcore/data/config/SkillAbilityInfo.java b/src/main/java/emu/lunarcore/data/config/SkillAbilityInfo.java index 2eabafc..29f4014 100644 --- a/src/main/java/emu/lunarcore/data/config/SkillAbilityInfo.java +++ b/src/main/java/emu/lunarcore/data/config/SkillAbilityInfo.java @@ -6,6 +6,7 @@ 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 lombok.Getter; /** @@ -50,9 +51,13 @@ public class SkillAbilityInfo { // "Simple" way to parse maze attacks/skills private void parseTask(MazeSkill skill, List actionList, TaskInfo task) { if (task.getType().contains("AddMazeBuff")) { + // TODO get duration from params if buff duration is dynamic actionList.add(new MazeSkillAddBuff(task.getID(), 15)); } else if (task.getType().contains("RemoveMazeBuff")) { actionList.removeIf(action -> action instanceof MazeSkillAddBuff actionAdd && actionAdd.getBuffId() == task.getID()); + } else if (task.getType().contains("AdventureModifyTeamPlayerSP")) { + // TODO get sp increase value from params, also handle target alias + actionList.add(new MazeSkillModifySP(50)); } else if (task.getType().contains("CreateSummonUnit")) { } else if (task.getSuccessTaskList() != null) { diff --git a/src/main/java/emu/lunarcore/game/battle/skills/MazeSkillModifySP.java b/src/main/java/emu/lunarcore/game/battle/skills/MazeSkillModifySP.java index 58f00ca..31bb220 100644 --- a/src/main/java/emu/lunarcore/game/battle/skills/MazeSkillModifySP.java +++ b/src/main/java/emu/lunarcore/game/battle/skills/MazeSkillModifySP.java @@ -5,16 +5,20 @@ import emu.lunarcore.game.battle.Battle; import emu.lunarcore.proto.MotionInfoOuterClass.MotionInfo; public class MazeSkillModifySP extends MazeSkillAction { + private int amount; + + public MazeSkillModifySP(int sp) { + this.amount = sp * 100; + } @Override public void onCast(GameAvatar caster, MotionInfo castPosition) { - // TODO Auto-generated method stub - + caster.setCurrentSp(amount + caster.getCurrentSp()); + // TODO Perhaps we should send a sync lineup packet here } @Override public void onAttack(GameAvatar caster, Battle battle) { - // TODO Auto-generated method stub }