diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Necromancer.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Necromancer.java index 93bfafb31..945cd63be 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Necromancer.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Necromancer.java @@ -204,21 +204,23 @@ public class Necromancer extends Mob { } } - //no push if char is immovable - if (Char.hasProp(Actor.findChar(summoningPos), Property.IMMOVABLE)){ - pushPos = pos; - } - //push enemy, or wait a turn if there is no valid pushing position if (pushPos != pos) { - Char ch = Actor.findChar(summoningPos); - Actor.add( new Pushing( ch, ch.pos, pushPos ) ); - ch.pos = pushPos; - Dungeon.level.occupyCell(ch ); + //no push if char is immovable, move our skeleton instead + if (Char.hasProp(Actor.findChar(summoningPos), Property.IMMOVABLE)){ + summoningPos = pushPos; + } else { + Char ch = Actor.findChar(summoningPos); + Actor.add(new Pushing(ch, ch.pos, pushPos)); + + ch.pos = pushPos; + Dungeon.level.occupyCell(ch); + } } else { + //attempt to damage the blocker in addition to waiting Char blocker = Actor.findChar(summoningPos); if (blocker.alignment != alignment){ blocker.damage( Random.NormalIntRange(2, 10), new SummoningBlockDamage() );