Skip to content

Commit efc1d4c

Browse files
committed
Fixed "find/collect/see/install/etc X number of something" achievements not completing.
1 parent 869157f commit efc1d4c

3 files changed

Lines changed: 17 additions & 16 deletions

File tree

CHANGELOGS.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
Version 1.5.6
2+
23
**MagicCampaign**
3-
- Fixed a bug since 2022 where `MagicCampaign.loadVariant` did not load `permaMods`/`sMods` correctly (reported by arbiter787).
4+
- Fixed a bug from 2022 where `MagicCampaign.loadVariant` did not load `permaMods`/`sMods` correctly (reported by arbiter787).
5+
6+
**MagicAchievements**
7+
- Fixed "find/collect/see/install/etc X number of something" achievements not completing.
48

59
Version 1.5.5
10+
611
**MagicAchievements**
712
- sorry
813
- Fixed achievements file not getting created if missing.

jars/MagicLib.jar

-646 Bytes
Binary file not shown.

src/org/magiclib/achievements/MagicTargetListAchievement.java

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class MagicTargetListAchievement extends MagicAchievement {
1919
protected String KEY = "magictargetlist_targets";
2020

2121
public Map<String, Data> getTargets() {
22-
Object obj = getMemory().get(KEY);
22+
Object obj = getAchievementMemory().get(KEY);
2323

2424
if (obj == null) {
2525
return new HashMap<>();
@@ -30,7 +30,7 @@ public Map<String, Data> getTargets() {
3030
JSONObject jsonTargets = (JSONObject) obj;
3131
Map<String, Data> result = new HashMap<>(jsonTargets.length());
3232

33-
for (Iterator it = jsonTargets.keys(); it.hasNext(); ) {
33+
for (var it = jsonTargets.keys(); it.hasNext(); ) {
3434
String key = (String) it.next();
3535
JSONObject jsonData = jsonTargets.getJSONObject(key);
3636
result.put(key, new Data(jsonData.getString(Data.DISPLAY_NAME), jsonData.getBoolean(Data.IS_COMPLETE)));
@@ -85,7 +85,7 @@ public void setTargets(Map<String, String> targets) {
8585
savedTargets.remove(key);
8686
}
8787

88-
getMemory().put(KEY, savedTargets);
88+
getAchievementMemory().put(KEY, savedTargets);
8989
}
9090

9191
/**
@@ -100,7 +100,7 @@ public void addTarget(String targetKey, String displayName) {
100100
if (savedTargets.containsKey(targetKey)) return;
101101

102102
savedTargets.put(targetKey, new Data(displayName));
103-
getMemory().put(KEY, savedTargets);
103+
getAchievementMemory().put(KEY, savedTargets);
104104
}
105105

106106
/**
@@ -126,7 +126,7 @@ public void setTargetComplete(String targetKey, boolean isComplete) {
126126
savedTargets.put(targetKey, new Data(targetKey, isComplete));
127127
}
128128

129-
getMemory().put(KEY, savedTargets);
129+
getAchievementMemory().put(KEY, savedTargets);
130130
}
131131

132132
@Override
@@ -138,7 +138,7 @@ public void advanceAfterInterval(float amount) {
138138
return;
139139

140140
// If all targets are complete, complete the achievement.
141-
if (shouldComplete(targets)) return;
141+
if (!shouldComplete(targets)) return;
142142

143143
completeAchievement();
144144
saveChanges();
@@ -150,13 +150,14 @@ public void advanceInCombat(float amount, List<InputEventAPI> events, boolean is
150150
super.advanceInCombat(amount, events, isSimulation);
151151

152152
if (isSimulation) return;
153+
if (isComplete()) return;
153154

154155
Map<String, Data> targets = getTargets();
155156

156157
if (targets.isEmpty())
157158
return;
158159

159-
if (shouldComplete(targets)) return;
160+
if (!shouldComplete(targets)) return;
160161

161162
completeAchievement();
162163
saveChanges();
@@ -181,10 +182,10 @@ public boolean shouldComplete(Map<String, Data> targets) {
181182

182183
for (Data data : targets.values()) {
183184
if (!data.isComplete) {
184-
return true;
185+
return false;
185186
}
186187
}
187-
return false;
188+
return true;
188189
}
189190

190191
@Override
@@ -214,12 +215,7 @@ public void createTooltip(@NotNull TooltipMakerAPI tooltipMakerAPI, boolean isEx
214215

215216
tooltipMakerAPI.setBulletedListMode(" - ");
216217
List<Data> values = new ArrayList<>(getTargets().values());
217-
Collections.sort(values, new Comparator<Data>() {
218-
@Override
219-
public int compare(Data o1, Data o2) {
220-
return o1.displayName.compareTo(o2.displayName);
221-
}
222-
});
218+
values.sort(Comparator.comparing(o -> o.displayName));
223219

224220
for (Data data : values) {
225221
tooltipMakerAPI.addPara(data.displayName, data.isComplete ? Misc.getTextColor() : Misc.getNegativeHighlightColor(), 0f);

0 commit comments

Comments
 (0)