v2.1.0: fixed ratmogrify not working correctly with multiplicity glyph

This commit is contained in:
Evan Debenham
2023-05-03 14:01:54 -04:00
parent e36c604147
commit aa968d5e61
2 changed files with 15 additions and 5 deletions

View File

@@ -213,6 +213,9 @@ public class Ratmogrify extends ArmorAbility {
}
public Mob getOriginal(){
original.HP = HP;
original.pos = pos;
original.clearTime();
return original;
}

View File

@@ -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) {