From 2898d2bdd16cd312df10d03989d86f672806f608 Mon Sep 17 00:00:00 2001 From: avionanx Date: Fri, 31 Jan 2025 02:12:35 +0300 Subject: [PATCH] MP Item fixes (#1995) * Fix MP item throw colors, fix MP items being capped by MaxHP (closes #1994, closes #1729) * very important styling --------- Co-authored-by: avaionanx --- .../legend/lodmod/items/MoonSerenadeItem.java | 12 ++---------- .../java/legend/lodmod/items/RecoverHpItem.java | 8 +++----- .../java/legend/lodmod/items/RecoverMpItem.java | 15 +++++++++------ .../java/legend/lodmod/items/SunRhapsodyItem.java | 12 ++---------- 4 files changed, 16 insertions(+), 31 deletions(-) diff --git a/src/main/java/legend/lodmod/items/MoonSerenadeItem.java b/src/main/java/legend/lodmod/items/MoonSerenadeItem.java index 0afc85a13..e9de8f8ef 100644 --- a/src/main/java/legend/lodmod/items/MoonSerenadeItem.java +++ b/src/main/java/legend/lodmod/items/MoonSerenadeItem.java @@ -1,21 +1,13 @@ package legend.lodmod.items; -import legend.game.Scus94491BpeSegment_8002; import legend.game.combat.bent.BattleEntity27c; import legend.game.scripting.ScriptState; -import java.util.function.BiFunction; - -public class MoonSerenadeItem extends RecoverHpItem { +public class MoonSerenadeItem extends RecoverMpItem { public MoonSerenadeItem() { super(34, 100, true, 100); } - @Override - protected BiFunction getRecoveryMethod() { - return Scus94491BpeSegment_8002::addMp; - } - @Override protected int getUseItemScriptEntrypoint() { return 2; @@ -23,7 +15,7 @@ protected int getUseItemScriptEntrypoint() { @Override protected void useItemScriptLoaded(final ScriptState user, final int targetBentIndex) { - user.storage_44[8] = 0xfadf82; // Colour + user.storage_44[8] = 0x780078; // Colour user.storage_44[28] = targetBentIndex; user.storage_44[30] = user.index; } diff --git a/src/main/java/legend/lodmod/items/RecoverHpItem.java b/src/main/java/legend/lodmod/items/RecoverHpItem.java index c211959d7..16b54959b 100644 --- a/src/main/java/legend/lodmod/items/RecoverHpItem.java +++ b/src/main/java/legend/lodmod/items/RecoverHpItem.java @@ -6,8 +6,6 @@ import legend.game.inventory.UseItemResponse; import legend.lodmod.LodMod; -import java.util.function.BiFunction; - import static legend.game.Scus94491BpeSegment_800b.stats_800be5f8; public class RecoverHpItem extends BattleItem { @@ -41,11 +39,11 @@ public void useInMenu(final UseItemResponse response, final int charId) { } response._00 = this.canTarget(TargetType.ALL) ? 3 : 2; - response.value_04 = this.getRecoveryMethod().apply(charId, amount); + response.value_04 = this.recover(charId, amount); } - protected BiFunction getRecoveryMethod() { - return Scus94491BpeSegment_8002::addHp; + protected int recover(final int charId,final int amount) { + return Scus94491BpeSegment_8002.addHp(charId, amount); } @Override diff --git a/src/main/java/legend/lodmod/items/RecoverMpItem.java b/src/main/java/legend/lodmod/items/RecoverMpItem.java index d2b602ae4..902e6ec96 100644 --- a/src/main/java/legend/lodmod/items/RecoverMpItem.java +++ b/src/main/java/legend/lodmod/items/RecoverMpItem.java @@ -1,20 +1,19 @@ package legend.lodmod.items; import legend.core.memory.Method; +import legend.game.Scus94491BpeSegment_8002; import legend.game.combat.bent.BattleEntity27c; -import legend.game.inventory.Item; import legend.game.inventory.UseItemResponse; import legend.lodmod.LodMod; -import static legend.game.Scus94491BpeSegment_8002.addMp; import static legend.game.Scus94491BpeSegment_800b.stats_800be5f8; -public class RecoverMpItem extends Item { +public class RecoverMpItem extends BattleItem { private final boolean targetAll; private final int percentage; - public RecoverMpItem(final int price, final boolean targetAll, final int percentage) { - super(34, price); + public RecoverMpItem(final int icon, final int price, final boolean targetAll, final int percentage) { + super(icon, price); this.targetAll = targetAll; this.percentage = percentage; } @@ -40,7 +39,11 @@ public void useInMenu(final UseItemResponse response, final int charId) { } response._00 = this.canTarget(TargetType.ALL) ? 5 : 4; - response.value_04 = addMp(charId, amount); + response.value_04 = this.recover(charId, amount); + } + + protected int recover(final int charId,final int amount) { + return Scus94491BpeSegment_8002.addMp(charId, amount); } @Override diff --git a/src/main/java/legend/lodmod/items/SunRhapsodyItem.java b/src/main/java/legend/lodmod/items/SunRhapsodyItem.java index 3785e86d5..3c04ffcac 100644 --- a/src/main/java/legend/lodmod/items/SunRhapsodyItem.java +++ b/src/main/java/legend/lodmod/items/SunRhapsodyItem.java @@ -1,21 +1,13 @@ package legend.lodmod.items; -import legend.game.Scus94491BpeSegment_8002; import legend.game.combat.bent.BattleEntity27c; import legend.game.scripting.ScriptState; -import java.util.function.BiFunction; - -public class SunRhapsodyItem extends RecoverHpItem { +public class SunRhapsodyItem extends RecoverMpItem { public SunRhapsodyItem() { super(34, 25, false, 100); } - @Override - protected BiFunction getRecoveryMethod() { - return Scus94491BpeSegment_8002::addMp; - } - @Override protected int getUseItemScriptEntrypoint() { return 2; @@ -23,7 +15,7 @@ protected int getUseItemScriptEntrypoint() { @Override protected void useItemScriptLoaded(final ScriptState user, final int targetBentIndex) { - user.storage_44[8] = 0xfadf82; // Colour + user.storage_44[8] = 0x780078; // Colour user.storage_44[28] = targetBentIndex; user.storage_44[30] = user.index; }