From aa968d5e619f384877c5dce05811ab7a7b06fb4d Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 3 May 2023 14:01:54 -0400 Subject: [PATCH] v2.1.0: fixed ratmogrify not working correctly with multiplicity glyph --- .../actors/hero/abilities/Ratmogrify.java | 3 +++ .../items/armor/curses/Multiplicity.java | 17 ++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/Ratmogrify.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/Ratmogrify.java index 03fba0648..b07d7ec01 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/Ratmogrify.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/Ratmogrify.java @@ -213,6 +213,9 @@ public class Ratmogrify extends ArmorAbility { } public Mob getOriginal(){ + original.HP = HP; + original.pos = pos; + original.clearTime(); return original; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/curses/Multiplicity.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/curses/Multiplicity.java index a8a67d626..17d768b48 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/curses/Multiplicity.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/curses/Multiplicity.java @@ -26,6 +26,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.PinCushion; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.Ratmogrify; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mimic; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Statue; @@ -69,15 +70,21 @@ public class Multiplicity extends Armor.Glyph { ((MirrorImage)m).duplicate( (Hero)defender ); } else { + Char toDuplicate = attacker; + + if (toDuplicate instanceof Ratmogrify.TransmogRat){ + toDuplicate = ((Ratmogrify.TransmogRat)attacker).getOriginal(); + } + //FIXME should probably have a mob property for this - if (!(attacker instanceof Mob) - || attacker.properties().contains(Char.Property.BOSS) || attacker.properties().contains(Char.Property.MINIBOSS) - || attacker instanceof Mimic || attacker instanceof Statue || attacker instanceof NPC){ + if (!(toDuplicate instanceof Mob) + || toDuplicate.properties().contains(Char.Property.BOSS) || toDuplicate.properties().contains(Char.Property.MINIBOSS) + || toDuplicate instanceof Mimic || toDuplicate instanceof Statue || toDuplicate instanceof NPC) { m = Dungeon.level.createMob(); } else { Actor.fixTime(); - - m = (Mob)Reflection.newInstance(attacker.getClass()); + + m = (Mob)Reflection.newInstance(toDuplicate.getClass()); if (m != null) {