From f21da8925b6431e48c5a687dfa664466ce2705d0 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 5 Jan 2026 10:30:38 -0500 Subject: [PATCH] v3.3.3: fixed NPE caused by resurrection level reset + skeleton key --- .../shatteredpixeldungeon/items/artifacts/SkeletonKey.java | 7 +++++++ .../shatteredpixeldungeon/scenes/InterlevelScene.java | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/SkeletonKey.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/SkeletonKey.java index bc8759ebf..9f95a86e0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/SkeletonKey.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/SkeletonKey.java @@ -595,6 +595,13 @@ public class SkeletonKey extends Artifact { } } + //used if a level was reset, e.g. via unblessed ankh vs. boss + public void clearDepth(){ + ironKeysNeeded[Dungeon.depth] = -1; + goldenKeysNeeded[Dungeon.depth] = -1; + crystalKeysNeeded[Dungeon.depth] = -1; + } + public void processIronLockOpened(){ if (ironKeysNeeded[Dungeon.depth] == -1){ setupKeysForDepth(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java index 00f3126e6..e246b83dc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java @@ -769,7 +769,7 @@ public class InterlevelScene extends PixelScene { //need to reset key replacement tracking as well if (Dungeon.hero.buff(SkeletonKey.KeyReplacementTracker.class) != null){ - Dungeon.hero.buff(SkeletonKey.KeyReplacementTracker.class).setupKeysForDepth(); + Dungeon.hero.buff(SkeletonKey.KeyReplacementTracker.class).clearDepth(); } } else {