From 1e17a264f9af4dd930a5f03e32305e0ba184a2c2 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sun, 30 Nov 2025 14:01:24 -0500 Subject: [PATCH] v3.3.0: fixed allies coming with you into new quest area --- .../items/artifacts/DriedRose.java | 2 ++ .../scenes/InterlevelScene.java | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java index 24fe5d28d..f3f593ee0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java @@ -581,6 +581,8 @@ public class DriedRose extends Artifact { private void updateRose(){ if (rose == null) { rose = Dungeon.hero.belongings.getItem(DriedRose.class); + rose.ghost = this; + rose.ghostID = id(); } //same dodge as the hero 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 1221b955a..61dff51ef 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java @@ -645,7 +645,12 @@ public class InterlevelScene extends PixelScene { Level level = Dungeon.newLevel(); Dungeon.switchLevel( level, -1 ); } else { - Mob.holdAllies( Dungeon.level ); + if (curTransition.destBranch != Dungeon.branch && Dungeon.depth >= 16 && Dungeon.depth <= 20) { + //FIXME avoids holding allies when entering city quest area, this is very sloppy though + // perhaps holding allies could be a property of the transition? + } else { + Mob.holdAllies(Dungeon.level); + } Dungeon.saveAll(); Level level; @@ -684,7 +689,12 @@ public class InterlevelScene extends PixelScene { } private void ascend() throws IOException { - Mob.holdAllies( Dungeon.level ); + if (curTransition.destBranch != Dungeon.branch && Dungeon.depth >= 16 && Dungeon.depth <= 20) { + //FIXME avoids holding allies when entering city quest area, this is very sloppy though + // perhaps holding allies could be a property of the transition? + } else { + Mob.holdAllies(Dungeon.level); + } Dungeon.saveAll(); Level level;