From abf3cd5a0d4bca96eb9d19bb6f1c0bce3fd05c99 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Thu, 4 May 2023 13:59:36 -0400 Subject: [PATCH] v2.1.0: fixed targeted traps firing on dead targets in very rare cases --- .../shatteredpixeldungeon/levels/traps/DisintegrationTrap.java | 1 + .../shatteredpixeldungeon/levels/traps/GrimTrap.java | 1 + .../shatteredpixeldungeon/levels/traps/PoisonDartTrap.java | 1 + .../shatteredpixeldungeon/levels/traps/WornDartTrap.java | 1 + 4 files changed, 4 insertions(+) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DisintegrationTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DisintegrationTrap.java index b1a927462..12b1229a5 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DisintegrationTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DisintegrationTrap.java @@ -55,6 +55,7 @@ public class DisintegrationTrap extends Trap { if (target == null){ float closestDist = Float.MAX_VALUE; for (Char ch : Actor.chars()){ + if (!ch.isAlive()) continue; float curDist = Dungeon.level.trueDistance(pos, ch.pos); if (ch.invisible > 0) curDist += 1000; Ballistica bolt = new Ballistica(pos, ch.pos, Ballistica.PROJECTILE); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GrimTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GrimTrap.java index 20a6fec6c..d39252a22 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GrimTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GrimTrap.java @@ -65,6 +65,7 @@ public class GrimTrap extends Trap { if (target == null){ float closestDist = Float.MAX_VALUE; for (Char ch : Actor.chars()){ + if (!ch.isAlive()) continue; float curDist = Dungeon.level.trueDistance(pos, ch.pos); if (ch.invisible > 0) curDist += 1000; Ballistica bolt = new Ballistica(pos, ch.pos, Ballistica.PROJECTILE); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PoisonDartTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PoisonDartTrap.java index d17e12398..8c0f24a2a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PoisonDartTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PoisonDartTrap.java @@ -77,6 +77,7 @@ public class PoisonDartTrap extends Trap { if (target == null){ float closestDist = Float.MAX_VALUE; for (Char ch : Actor.chars()){ + if (!ch.isAlive()) continue; float curDist = Dungeon.level.trueDistance(pos, ch.pos); if (ch.invisible > 0) curDist += 1000; Ballistica bolt = new Ballistica(pos, ch.pos, Ballistica.PROJECTILE); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/WornDartTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/WornDartTrap.java index eaa8e4f2e..270969b75 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/WornDartTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/WornDartTrap.java @@ -62,6 +62,7 @@ public class WornDartTrap extends Trap { if (target == null){ float closestDist = Float.MAX_VALUE; for (Char ch : Actor.chars()){ + if (!ch.isAlive()) continue; float curDist = Dungeon.level.trueDistance(pos, ch.pos); if (ch.invisible > 0) curDist += 1000; Ballistica bolt = new Ballistica(pos, ch.pos, Ballistica.PROJECTILE);