From bd338dd7e734afbaa0459d4ef4a55ad5bf32a38f Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 29 Jan 2025 19:50:04 -0500 Subject: [PATCH] v3.0.0: added a safety check to wall of light --- .../actors/hero/spells/WallOfLight.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/WallOfLight.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/WallOfLight.java index e2cf77865..4bace8cda 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/WallOfLight.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/WallOfLight.java @@ -193,19 +193,32 @@ public class WallOfLight extends TargetedClericSpell { for (int i = 0; i < steps; i++) { if (leftDirY != 0) { leftPos += leftDirY * Dungeon.level.width(); + if (!Dungeon.level.insideMap(leftPos)){ + break; + } placeWall(leftPos, knockBackDir); } if (leftDirX != 0) { leftPos += leftDirX; + if (!Dungeon.level.insideMap(leftPos)){ + break; + } placeWall(leftPos, knockBackDir); } - + } + for (int i = 0; i < steps; i++) { if (rightDirX != 0) { rightPos += rightDirX; + if (!Dungeon.level.insideMap(rightPos)){ + break; + } placeWall(rightPos, knockBackDir); } if (rightDirY != 0) { rightPos += rightDirY * Dungeon.level.width(); + if (!Dungeon.level.insideMap(rightPos)){ + break; + } placeWall(rightPos, knockBackDir); } }