From d029c0d7d18dcddda386f4405c9d4f91059271b9 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 29 Jan 2025 16:25:39 -0500 Subject: [PATCH] v3.0.0: fixed surface scene counting a win every time it was reset --- .../levels/SewerLevel.java | 17 ++++++++++++++++- .../scenes/SurfaceScene.java | 8 -------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/SewerLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/SewerLevel.java index 946141753..77f85cad5 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/SewerLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/SewerLevel.java @@ -22,7 +22,9 @@ package com.shatteredpixel.shatteredpixeldungeon.levels; import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.GamesInProgress; import com.shatteredpixel.shatteredpixeldungeon.Statistics; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Ghost; @@ -152,7 +154,20 @@ public class SewerLevel extends RegularLevel { return false; } else { Statistics.ascended = true; - Game.switchScene( SurfaceScene.class ); + Game.switchScene(SurfaceScene.class, new Game.SceneChangeCallback() { + @Override + public void beforeCreate() { + + } + + @Override + public void afterCreate() { + Badges.validateHappyEnd(); + Dungeon.win( Amulet.class ); + Dungeon.deleteGame( GamesInProgress.curSlot, true ); + Badges.saveGlobal(); + } + }); return true; } } else { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/SurfaceScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/SurfaceScene.java index eb801df70..690633c09 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/SurfaceScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/SurfaceScene.java @@ -22,12 +22,9 @@ package com.shatteredpixel.shatteredpixeldungeon.scenes; import com.shatteredpixel.shatteredpixeldungeon.Assets; -import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; -import com.shatteredpixel.shatteredpixeldungeon.GamesInProgress; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.Ratmogrify; -import com.shatteredpixel.shatteredpixeldungeon.items.Amulet; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose; import com.shatteredpixel.shatteredpixeldungeon.items.remains.RemainsItem; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfLivingEarth; @@ -266,11 +263,6 @@ public class SurfaceScene extends PixelScene { gameOver.setSize( SKY_WIDTH - FRAME_MARGIN_X * 2, BUTTON_HEIGHT ); gameOver.setPos( frame.x + FRAME_MARGIN_X * 2, frame.y + frame.height + 4 ); add( gameOver ); - - Badges.validateHappyEnd(); - Dungeon.win( Amulet.class ); - Dungeon.deleteGame( GamesInProgress.curSlot, true ); - Badges.saveGlobal(); fadeIn(); }