diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalGuardian.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalGuardian.java index 461c3bf85..35a1d6744 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalGuardian.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalGuardian.java @@ -201,7 +201,7 @@ public class CrystalGuardian extends Mob{ @Override public boolean[] modifyPassable(boolean[] passable) { //if we are hunting, we can stomp through crystals, but prefer not to - if (state == HUNTING){ + if (state == HUNTING && target != -1){ PathFinder.buildDistanceMap(target, passable); if (PathFinder.distance[pos] > 2*Dungeon.level.distance(pos, target)) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java index 23b58a1f5..79d64e430 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java @@ -327,26 +327,28 @@ public abstract class Elemental extends Mob { @Override protected void zap() { - spend( 1f ); + if (targetingPos != -1) { + spend(1f); - Invisibility.dispel(this); + Invisibility.dispel(this); - for (int i : PathFinder.NEIGHBOURS9){ - if (!Dungeon.level.solid[targetingPos + i]) { - CellEmitter.get(targetingPos+i).burst(ElmoParticle.FACTORY, 5); - if (Dungeon.level.water[targetingPos+i]){ - GameScene.add(Blob.seed(targetingPos+i, 2, Fire.class)); - } else { - GameScene.add(Blob.seed(targetingPos+i, 8, Fire.class)); - } + for (int i : PathFinder.NEIGHBOURS9) { + if (!Dungeon.level.solid[targetingPos + i]) { + CellEmitter.get(targetingPos + i).burst(ElmoParticle.FACTORY, 5); + if (Dungeon.level.water[targetingPos + i]) { + GameScene.add(Blob.seed(targetingPos + i, 2, Fire.class)); + } else { + GameScene.add(Blob.seed(targetingPos + i, 8, Fire.class)); + } - Char target = Actor.findChar(targetingPos+i); - if (target != null && target != this){ - Buff.affect(target, Burning.class).reignite(target); + Char target = Actor.findChar(targetingPos + i); + if (target != null && target != this) { + Buff.affect(target, Burning.class).reignite(target); + } } } + Sample.INSTANCE.play(Assets.Sounds.BURNING); } - Sample.INSTANCE.play(Assets.Sounds.BURNING); targetingPos = -1; rangedCooldown = Random.NormalIntRange( 3, 5 );