v2.1.0: fixed targeted traps firing on dead targets in very rare cases

This commit is contained in:
Evan Debenham
2023-05-04 13:59:36 -04:00
parent e10189928e
commit abf3cd5a0d
4 changed files with 4 additions and 0 deletions

View File

@@ -55,6 +55,7 @@ public class DisintegrationTrap extends Trap {
if (target == null){ if (target == null){
float closestDist = Float.MAX_VALUE; float closestDist = Float.MAX_VALUE;
for (Char ch : Actor.chars()){ for (Char ch : Actor.chars()){
if (!ch.isAlive()) continue;
float curDist = Dungeon.level.trueDistance(pos, ch.pos); float curDist = Dungeon.level.trueDistance(pos, ch.pos);
if (ch.invisible > 0) curDist += 1000; if (ch.invisible > 0) curDist += 1000;
Ballistica bolt = new Ballistica(pos, ch.pos, Ballistica.PROJECTILE); Ballistica bolt = new Ballistica(pos, ch.pos, Ballistica.PROJECTILE);

View File

@@ -65,6 +65,7 @@ public class GrimTrap extends Trap {
if (target == null){ if (target == null){
float closestDist = Float.MAX_VALUE; float closestDist = Float.MAX_VALUE;
for (Char ch : Actor.chars()){ for (Char ch : Actor.chars()){
if (!ch.isAlive()) continue;
float curDist = Dungeon.level.trueDistance(pos, ch.pos); float curDist = Dungeon.level.trueDistance(pos, ch.pos);
if (ch.invisible > 0) curDist += 1000; if (ch.invisible > 0) curDist += 1000;
Ballistica bolt = new Ballistica(pos, ch.pos, Ballistica.PROJECTILE); Ballistica bolt = new Ballistica(pos, ch.pos, Ballistica.PROJECTILE);

View File

@@ -77,6 +77,7 @@ public class PoisonDartTrap extends Trap {
if (target == null){ if (target == null){
float closestDist = Float.MAX_VALUE; float closestDist = Float.MAX_VALUE;
for (Char ch : Actor.chars()){ for (Char ch : Actor.chars()){
if (!ch.isAlive()) continue;
float curDist = Dungeon.level.trueDistance(pos, ch.pos); float curDist = Dungeon.level.trueDistance(pos, ch.pos);
if (ch.invisible > 0) curDist += 1000; if (ch.invisible > 0) curDist += 1000;
Ballistica bolt = new Ballistica(pos, ch.pos, Ballistica.PROJECTILE); Ballistica bolt = new Ballistica(pos, ch.pos, Ballistica.PROJECTILE);

View File

@@ -62,6 +62,7 @@ public class WornDartTrap extends Trap {
if (target == null){ if (target == null){
float closestDist = Float.MAX_VALUE; float closestDist = Float.MAX_VALUE;
for (Char ch : Actor.chars()){ for (Char ch : Actor.chars()){
if (!ch.isAlive()) continue;
float curDist = Dungeon.level.trueDistance(pos, ch.pos); float curDist = Dungeon.level.trueDistance(pos, ch.pos);
if (ch.invisible > 0) curDist += 1000; if (ch.invisible > 0) curDist += 1000;
Ballistica bolt = new Ballistica(pos, ch.pos, Ballistica.PROJECTILE); Ballistica bolt = new Ballistica(pos, ch.pos, Ballistica.PROJECTILE);