Skip to content

Commit

Permalink
MP Item fixes (#1995)
Browse files Browse the repository at this point in the history
* Fix MP item throw colors, fix MP items being capped by MaxHP (closes #1994, closes #1729)

* very important styling

---------

Co-authored-by: avaionanx <[email protected]>
  • Loading branch information
avionanx and avaionanx authored Jan 30, 2025
1 parent aff556d commit 2898d2b
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 31 deletions.
12 changes: 2 additions & 10 deletions src/main/java/legend/lodmod/items/MoonSerenadeItem.java
Original file line number Diff line number Diff line change
@@ -1,29 +1,21 @@
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<Integer, Integer, Integer> getRecoveryMethod() {
return Scus94491BpeSegment_8002::addMp;
}

@Override
protected int getUseItemScriptEntrypoint() {
return 2;
}

@Override
protected void useItemScriptLoaded(final ScriptState<BattleEntity27c> 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;
}
Expand Down
8 changes: 3 additions & 5 deletions src/main/java/legend/lodmod/items/RecoverHpItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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<Integer, Integer, Integer> getRecoveryMethod() {
return Scus94491BpeSegment_8002::addHp;
protected int recover(final int charId,final int amount) {
return Scus94491BpeSegment_8002.addHp(charId, amount);
}

@Override
Expand Down
15 changes: 9 additions & 6 deletions src/main/java/legend/lodmod/items/RecoverMpItem.java
Original file line number Diff line number Diff line change
@@ -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;
}
Expand All @@ -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
Expand Down
12 changes: 2 additions & 10 deletions src/main/java/legend/lodmod/items/SunRhapsodyItem.java
Original file line number Diff line number Diff line change
@@ -1,29 +1,21 @@
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<Integer, Integer, Integer> getRecoveryMethod() {
return Scus94491BpeSegment_8002::addMp;
}

@Override
protected int getUseItemScriptEntrypoint() {
return 2;
}

@Override
protected void useItemScriptLoaded(final ScriptState<BattleEntity27c> 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;
}
Expand Down

0 comments on commit 2898d2b

Please sign in to comment.