From 1262b920bc8bed211d563239226bf864d5b06a4e Mon Sep 17 00:00:00 2001 From: Evan Debenham <Evan@ShatteredPixel.com> Date: Sun, 10 Jan 2021 15:31:10 -0500 Subject: [PATCH] v0.9.1c: fixed various issues with magical charge --- .../shatteredpixeldungeon/items/wands/Wand.java | 4 ++-- .../items/wands/WandOfMagicMissile.java | 15 +++++++++++++++ .../items/weapon/melee/MagesStaff.java | 10 +--------- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java index 2f253112c..1a1deb4ca 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java @@ -299,8 +299,8 @@ public abstract class Wand extends Item { @Override public int buffedLvl() { int lvl = super.buffedLvl(); - if (curUser != null) { - WandOfMagicMissile.MagicCharge buff = curUser.buff(WandOfMagicMissile.MagicCharge.class); + if (charger != null && charger.target != null) { + WandOfMagicMissile.MagicCharge buff = charger.target.buff(WandOfMagicMissile.MagicCharge.class); if (buff != null && buff.level() > lvl){ return buff.level(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfMagicMissile.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfMagicMissile.java index a78f0a83c..63238cddc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfMagicMissile.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfMagicMissile.java @@ -36,6 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.QuickSlotButton; import com.watabou.noosa.Image; import com.watabou.noosa.audio.Sample; +import com.watabou.utils.Bundle; import com.watabou.utils.Random; public class WandOfMagicMissile extends DamageWand { @@ -141,6 +142,20 @@ public class WandOfMagicMissile extends DamageWand { public String desc() { return Messages.get(this, "desc", level(), dispTurns()); } + + private static final String LEVEL = "level"; + + @Override + public void storeInBundle(Bundle bundle) { + super.storeInBundle(bundle); + bundle.put(LEVEL, level); + } + + @Override + public void restoreFromBundle(Bundle bundle) { + super.restoreFromBundle(bundle); + level = bundle.getInt(LEVEL); + } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java index 9722d2fa3..03ca68bfd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java @@ -38,7 +38,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfCorrosion; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfCorruption; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfDisintegration; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfLivingEarth; -import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfMagicMissile; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfRegrowth; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; @@ -138,14 +137,7 @@ public class MagesStaff extends MeleeWeapon { @Override public int buffedLvl() { - int lvl = super.buffedLvl(); - if (curUser != null && wand != null) { - WandOfMagicMissile.MagicCharge buff = curUser.buff(WandOfMagicMissile.MagicCharge.class); - if (buff != null && buff.level() > lvl){ - return buff.level(); - } - } - return lvl; + return Math.max(super.buffedLvl(), wand.buffedLvl()); } @Override