From e4b704e6aa54af13f68105570568d4fc4b5f3dc0 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 23 Oct 2023 14:31:24 -0400 Subject: [PATCH] v2.2.1: fixed various blink effects working over magical fire --- .../shatteredpixeldungeon/actors/buffs/Preparation.java | 2 +- .../actors/hero/abilities/duelist/Challenge.java | 4 ++-- .../actors/hero/abilities/rogue/SmokeBomb.java | 2 +- .../shatteredpixeldungeon/items/weapon/melee/Dagger.java | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Preparation.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Preparation.java index aa842f81b..923ca8254 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Preparation.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Preparation.java @@ -285,7 +285,7 @@ public class Preparation extends Buff implements ActionIndicator.Action { AttackLevel lvl = AttackLevel.getLvl(turnsInvis); - PathFinder.buildDistanceMap(Dungeon.hero.pos, BArray.not(Dungeon.level.solid, null), lvl.blinkDistance()); + PathFinder.buildDistanceMap(Dungeon.hero.pos,BArray.or(Dungeon.level.passable, Dungeon.level.avoid, null), lvl.blinkDistance()); int dest = -1; for (int i : PathFinder.NEIGHBOURS8){ //cannot blink into a cell that's occupied or impassable, only over them diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/Challenge.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/Challenge.java index 460467fb9..d4e79dfe2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/Challenge.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/Challenge.java @@ -104,7 +104,7 @@ public class Challenge extends ArmorAbility { return; } - boolean[] passable = BArray.not(Dungeon.level.solid,null); + boolean[] passable = BArray.or(Dungeon.level.passable, Dungeon.level.avoid, null); for (Char c : Actor.chars()) { if (c != hero) passable[c.pos] = false; } @@ -115,7 +115,7 @@ public class Challenge extends ArmorAbility { if (hero.hasTalent(Talent.CLOSE_THE_GAP) && !hero.rooted){ int blinkrange = 1 + hero.pointsInTalent(Talent.CLOSE_THE_GAP); - PathFinder.buildDistanceMap(hero.pos, BArray.not(Dungeon.level.solid,null), blinkrange); + PathFinder.buildDistanceMap(hero.pos, BArray.or(Dungeon.level.passable, Dungeon.level.avoid, null), blinkrange); for (int i = 0; i < PathFinder.distance.length; i++){ if (PathFinder.distance[i] == Integer.MAX_VALUE diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/rogue/SmokeBomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/rogue/SmokeBomb.java index 982653687..d583a3036 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/rogue/SmokeBomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/rogue/SmokeBomb.java @@ -92,7 +92,7 @@ public class SmokeBomb extends ArmorAbility { return; } - PathFinder.buildDistanceMap(hero.pos, BArray.not(Dungeon.level.solid,null), 6); + PathFinder.buildDistanceMap(hero.pos, BArray.or(Dungeon.level.passable, Dungeon.level.avoid, null), 6); if ( PathFinder.distance[target] == Integer.MAX_VALUE || !Dungeon.level.heroFOV[target] || diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dagger.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dagger.java index 83308657b..1ec70847a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dagger.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dagger.java @@ -108,7 +108,7 @@ public class Dagger extends MeleeWeapon { return; } - PathFinder.buildDistanceMap(Dungeon.hero.pos, BArray.not(Dungeon.level.solid, null), maxDist); + PathFinder.buildDistanceMap(Dungeon.hero.pos, BArray.or(Dungeon.level.passable, Dungeon.level.avoid, null), maxDist); if (PathFinder.distance[target] == Integer.MAX_VALUE) { GLog.w(Messages.get(wep, "ability_bad_position")); return;