From cebd6466365bac5cd29384255940ac0e37ed428e Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Tue, 29 Sep 2020 16:39:29 -0400 Subject: [PATCH] v0.9.0: fixed higher challenge badges not unlocking lower ones --- .../shatteredpixeldungeon/Badges.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Badges.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Badges.java index 5f27fcd42..19a75fdd0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Badges.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Badges.java @@ -228,6 +228,16 @@ public class Badges { try { Bundle bundle = FileUtils.bundleFromFile( BADGES_FILE ); global = restore( bundle ); + + //fixes a bug with challenge badges in pre-0.9.0 saves + if (global.contains(Badge.CHAMPION_3)){ + saveNeeded = !global.contains(Badge.CHAMPION_2) || global.contains(Badge.CHAMPION_1); + global.add(Badge.CHAMPION_2); + global.add(Badge.CHAMPION_1); + } else if (global.contains(Badge.CHAMPION_2)){ + saveNeeded = !global.contains(Badge.CHAMPION_1); + global.add(Badge.CHAMPION_1); + } } catch (IOException e) { global = new HashSet<>(); @@ -794,9 +804,17 @@ public class Badges { badge = Badge.CHAMPION_1; } if (challenges >= 3){ + if (!global.contains(badge)){ + global.add(badge); + saveNeeded = true; + } badge = Badge.CHAMPION_2; } if (challenges >= 6){ + if (!global.contains(badge)){ + global.add(badge); + saveNeeded = true; + } badge = Badge.CHAMPION_3; } displayBadge( badge );