Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CHANGELOGS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
Version 1.5.6

**MagicCampaign**
- Fixed a bug from 2022 where `MagicCampaign.loadVariant` did not load `permaMods`/`sMods` correctly (reported by arbiter787).

**MagicAchievements**
- Fixed "find/collect/see/install/etc X number of something" achievements not completing.

Version 1.5.5

**MagicAchievements**
- sorry
- Fixed achievements file not getting created if missing.
- This prevented achievements from loading, crashing mods e.g. AotD: VoK.

Version 1.5.4

**MagicAchievements**
Expand Down
Binary file modified jars/MagicLib-Kotlin.jar
Binary file not shown.
Binary file modified jars/MagicLib.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion magiclib.version
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
{
"major": "1",
"minor": "5",
"patch": "4-RC01"
"patch": "6"
}
}
2 changes: 1 addition & 1 deletion mod_info.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"author": "Modding Community: Dark.Revenant, LazyWizard, Nicke, Originem, Rubi, Schaf-Unschaf, Snrasha, Tartiflette, Wisp, Wyvern...",
"utility": "false",
# Using the long version format lets the game correctly compare major/minor/patch versions.
"version": { "major": '1', "minor": '5', "patch": '4' },
"version": { "major": '1', "minor": '5', "patch": '6' },
"description": "A collection of classes to aid modding. Not a mod in itself, but required by other mods.",
"gameVersion": "0.98a-RC7",
"dependencies": [
Expand Down
4 changes: 2 additions & 2 deletions src/org/magiclib/achievements/MagicAchievement.java
Original file line number Diff line number Diff line change
Expand Up @@ -215,11 +215,11 @@ public void advanceInCombat(float amount, List<InputEventAPI> events, boolean is
*/
public void saveChanges() {
getLogger().info("Saving achievements triggered by '" + spec.getId() + "' from mod '" + spec.getModName() + "'.");
MagicAchievementManager.getInstance().saveAchievements(true);
MagicAchievementManager.getInstance().saveAchievements(true, false);
}

private void saveChangesWithoutLogging() {
MagicAchievementManager.getInstance().saveAchievements(false);
MagicAchievementManager.getInstance().saveAchievements(false, false);
}

/**
Expand Down
12 changes: 6 additions & 6 deletions src/org/magiclib/achievements/MagicAchievementManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ public void setAchievementsEnabled(boolean areAchievementsEnabled, boolean isSav
} else {
logger.info("MagicLib achievements are disabled.");
removeIntel();
saveAchievements(true);
saveAchievements(true, false);

if (isSaveLoaded) {
Global.getSector().removeTransientScriptsOfClass(MagicAchievementRunner.class);
Expand Down Expand Up @@ -221,13 +221,13 @@ public Map<String, MagicAchievement> getAchievements() {
/**
* This writes to disk.
*/
protected void saveAchievements(boolean printUnchangedResultToLog) {
protected void saveAchievements(boolean printUnchangedResultToLog, boolean forceSave) {
JSONObject commonJson;
JSONArray savedAchievements = new JSONArray();

// Prevents accidentally wiping achievements if the feature is disabled on game load.
// Also, no reason to save nothing anyway.
if (achievements.isEmpty()) {
if (!forceSave && achievements.isEmpty()) {
return;
}

Expand All @@ -246,7 +246,7 @@ protected void saveAchievements(boolean printUnchangedResultToLog) {
try {
newAchievementsJsonString = savedAchievements.toString(indent);

if (newAchievementsJsonString.equals(lastSavedJson)) {
if (!forceSave && newAchievementsJsonString.equals(lastSavedJson)) {
if (printUnchangedResultToLog) {
logger.info("Not saving achievements because they haven't changed.");
}
Expand Down Expand Up @@ -303,7 +303,7 @@ public void reloadAchievements(boolean isSaveGameLoaded) {
try {
// Create file if it doesn't exist.
if (!Global.getSettings().fileExistsInCommon(commonFilename)) {
saveAchievements(true);
saveAchievements(true, true);
}

try {
Expand All @@ -314,7 +314,7 @@ public void reloadAchievements(boolean isSaveGameLoaded) {
logger.warn("Unable to load achievements from " + commonFilename + ", making a backup and remaking it.", ex);
Global.getSettings().writeTextFileToCommon(commonFilename + ".backup", Global.getSettings().readTextFileFromCommon(commonFilename));
Global.getSettings().deleteTextFileFromCommon(commonFilename);
saveAchievements(true);
saveAchievements(true, true);
commonJson = JSONUtils.loadCommonJSON(commonFilename);
savedAchievementsJson = commonJson.getJSONArray(achievementsJsonObjectKey);
}
Expand Down
26 changes: 11 additions & 15 deletions src/org/magiclib/achievements/MagicTargetListAchievement.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class MagicTargetListAchievement extends MagicAchievement {
protected String KEY = "magictargetlist_targets";

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

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

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

getMemory().put(KEY, savedTargets);
getAchievementMemory().put(KEY, savedTargets);
}

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

savedTargets.put(targetKey, new Data(displayName));
getMemory().put(KEY, savedTargets);
getAchievementMemory().put(KEY, savedTargets);
}

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

getMemory().put(KEY, savedTargets);
getAchievementMemory().put(KEY, savedTargets);
}

@Override
Expand All @@ -138,7 +138,7 @@ public void advanceAfterInterval(float amount) {
return;

// If all targets are complete, complete the achievement.
if (shouldComplete(targets)) return;
if (!shouldComplete(targets)) return;

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

if (isSimulation) return;
if (isComplete()) return;

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

if (targets.isEmpty())
return;

if (shouldComplete(targets)) return;
if (!shouldComplete(targets)) return;

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

for (Data data : targets.values()) {
if (!data.isComplete) {
return true;
return false;
}
}
return false;
return true;
}

@Override
Expand Down Expand Up @@ -214,12 +215,7 @@ public void createTooltip(@NotNull TooltipMakerAPI tooltipMakerAPI, boolean isEx

tooltipMakerAPI.setBulletedListMode(" - ");
List<Data> values = new ArrayList<>(getTargets().values());
Collections.sort(values, new Comparator<Data>() {
@Override
public int compare(Data o1, Data o2) {
return o1.displayName.compareTo(o2.displayName);
}
});
values.sort(Comparator.comparing(o -> o.displayName));

for (Data data : values) {
tooltipMakerAPI.addPara(data.displayName, data.isComplete ? Misc.getTextColor() : Misc.getNegativeHighlightColor(), 0f);
Expand Down
2 changes: 1 addition & 1 deletion src/org/magiclib/paintjobs/MagicPaintjobShinyAdder.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class MagicPaintjobShinyAdder : BaseCampaignEventListener(false) {

val shipsInFleetWithAvailableShiny =
fleet.fleetData.membersListCopy.filter { it.hullId in allShinyPaintjobs.flatMap { pj -> pj.hullIds } }
val probability = 50 // 1 in X chance of getting a shiny
val probability = 50 // 1 in 50 chance of spawning a shiny
var addedShiny = false

for (ship in shipsInFleetWithAvailableShiny) {
Expand Down
4 changes: 2 additions & 2 deletions src/org/magiclib/util/MagicCampaign.java
Original file line number Diff line number Diff line change
Expand Up @@ -157,15 +157,15 @@ public static ShipVariantAPI loadVariant(String path) {
// todo: check if order matters
if (sMods != null) {
for (int k = 0; k < sMods.length(); k++) {
String sModId = hullMods.getString(k);
String sModId = sMods.getString(k);
variant.addPermaMod(sModId, true);
// variant.addPermaMod(sModId);
variant.addMod(sModId);
}
}
if (permaMods != null) {
for (int j = 0; j < permaMods.length(); j++) {
String permaModId = hullMods.getString(j);
String permaModId = permaMods.getString(j);
variant.addPermaMod(permaModId);
if (!variant.getHullMods().contains(permaModId)) {
variant.addMod(permaModId);
Expand Down