v1.4.0: fixed warp beacon and swarms not respecting eternal fire

This commit is contained in:
Evan Debenham
2022-07-29 15:33:29 -04:00
parent 90a1d3ce2b
commit 401411d16f
2 changed files with 4 additions and 1 deletions

View File

@@ -196,6 +196,7 @@ public class WarpBeacon extends ArmorAbility {
PathFinder.buildDistanceMap(target, BArray.or(Dungeon.level.passable, Dungeon.level.avoid, null));
if (Dungeon.level.pit[target] ||
(Dungeon.level.solid[target] && !Dungeon.level.passable[target]) ||
!(Dungeon.level.passable[target] || Dungeon.level.avoid[target]) ||
PathFinder.distance[hero.pos] == Integer.MAX_VALUE){
GLog.w( Messages.get(WarpBeacon.class, "invalid_beacon") );
return;

View File

@@ -88,7 +88,9 @@ public class Swarm extends Mob {
int[] neighbours = {pos + 1, pos - 1, pos + Dungeon.level.width(), pos - Dungeon.level.width()};
for (int n : neighbours) {
if (!Dungeon.level.solid[n] && Actor.findChar( n ) == null
if (!Dungeon.level.solid[n]
&& Actor.findChar( n ) == null
&& (Dungeon.level.passable[target] || Dungeon.level.avoid[target])
&& (!properties().contains(Property.LARGE) || Dungeon.level.openSpace[n])) {
candidates.add( n );
}