From 815c0d80aa0be089cf33654021bd37eb44ca083b Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 17 May 2025 13:27:53 -0400 Subject: [PATCH] v3.1.0: fixed unintentional change to enemy reach logic --- .../actors/buffs/ChampionEnemy.java | 15 +++++++++------ .../actors/mobs/GnollExile.java | 7 +++++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ChampionEnemy.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ChampionEnemy.java index e5af04590..a976c189b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ChampionEnemy.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ChampionEnemy.java @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.Challenges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire; @@ -166,9 +167,10 @@ public abstract class ChampionEnemy extends Buff { return false; } else { boolean[] passable = BArray.not(Dungeon.level.solid, null); - - //our own tile is always passable - passable[target.pos] = true; + for (Char ch : Actor.chars()) { + //our own tile is always passable + passable[ch.pos] = ch == target; + } PathFinder.buildDistanceMap(enemy.pos, passable, 4); @@ -214,9 +216,10 @@ public abstract class ChampionEnemy extends Buff { return false; } else { boolean[] passable = BArray.not(Dungeon.level.solid, null); - - //our own tile is always passable - passable[target.pos] = true; + for (Char ch : Actor.chars()) { + //our own tile is always passable + passable[ch.pos] = ch == target; + } PathFinder.buildDistanceMap(enemy.pos, passable, 2); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollExile.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollExile.java index feec29ef9..27885614e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollExile.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollExile.java @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.items.Generator; @@ -78,8 +79,10 @@ public class GnollExile extends Gnoll { if (Dungeon.level.distance( pos, enemy.pos ) <= 2){ boolean[] passable = BArray.not(Dungeon.level.solid, null); - //our own tile is always passable - passable[pos] = true; + for (Char ch : Actor.chars()) { + //our own tile is always passable + passable[ch.pos] = ch == this; + } PathFinder.buildDistanceMap(enemy.pos, passable, 2);