v0.9.0: fixed higher challenge badges not unlocking lower ones

This commit is contained in:
Evan Debenham
2020-09-29 16:39:29 -04:00
parent 8cac7dddc9
commit cebd646636
@@ -228,6 +228,16 @@ public class Badges {
try { try {
Bundle bundle = FileUtils.bundleFromFile( BADGES_FILE ); Bundle bundle = FileUtils.bundleFromFile( BADGES_FILE );
global = restore( bundle ); 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) { } catch (IOException e) {
global = new HashSet<>(); global = new HashSet<>();
@@ -794,9 +804,17 @@ public class Badges {
badge = Badge.CHAMPION_1; badge = Badge.CHAMPION_1;
} }
if (challenges >= 3){ if (challenges >= 3){
if (!global.contains(badge)){
global.add(badge);
saveNeeded = true;
}
badge = Badge.CHAMPION_2; badge = Badge.CHAMPION_2;
} }
if (challenges >= 6){ if (challenges >= 6){
if (!global.contains(badge)){
global.add(badge);
saveNeeded = true;
}
badge = Badge.CHAMPION_3; badge = Badge.CHAMPION_3;
} }
displayBadge( badge ); displayBadge( badge );