diff --git a/BiomeManagerPatch.cs b/BiomeManagerPatch.cs
index 9170623..0d33d6d 100644
--- a/BiomeManagerPatch.cs
+++ b/BiomeManagerPatch.cs
@@ -264,6 +264,7 @@ public static bool UpdateOverallPollution_Prefix(BiomeManager __instance, bool s
float weightedPlasticPollution = (__instance.maxPlasticCloudPollution > 0f) ? (__instance.currentPlasticCloudPollution / __instance.maxPlasticCloudPollution * __instance.plasticCloudContributionToBiomePollution) : 0f;
__instance.biomePollution = weightedGoopPollution + __instance.weightedLitterPollution + weightedPlasticPollution;
__instance.biomePollution = BloopTools.SnapToZero(__instance.biomePollution, 1E-06f);
+ ExtraTrackersMod.nonBiomeIsComplete = __instance.biomePollution < 1E-06f;
if (skipEffects)
{
__instance.externalPollutionUpdateQueued = true;
diff --git a/ExtraTrackers.csproj b/ExtraTrackers.csproj
index 4488a40..51558b9 100644
--- a/ExtraTrackers.csproj
+++ b/ExtraTrackers.csproj
@@ -4,7 +4,7 @@
net471
ExtraTrackers
Loddlenaut mod for tracking more stuff
- 1.1.1
+ 1.1.2
true
latest
diff --git a/ExtraTrackersMod.cs b/ExtraTrackersMod.cs
index 9b129db..4a9c3f5 100644
--- a/ExtraTrackersMod.cs
+++ b/ExtraTrackersMod.cs
@@ -4,6 +4,7 @@
using HarmonyLib.Tools;
using I2.Loc;
using System;
+using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using UnityEngine;
@@ -22,6 +23,12 @@ public static class ExtraTrackersMod
public static BiomeManager nonBiomeManager;
+ // For autosplitter tracking
+ public static bool nonBiomeIsComplete = false;
+ public static bool allHoloBadgesFound = false;
+ public static bool allLoddleTypesFound = false;
+ public static bool allGoopyLoddlesCleaned = false;
+
public static Dictionary typeRemarkMapping = new Dictionary()
{
{ LoddleAI.LoddleType.Eel, GoogleSheetsEntryNames.SirenEvoIntro },
@@ -162,6 +169,10 @@ public static float GetGlobalPollutionAmount()
return BloopTools.SnapToZero(totalPollution, 1E-06f);
}
+ public static void GetGoopyLoddlesCount(GameEvent e)
+ {
+ allGoopyLoddlesCleaned = GetGoopyLoddlesCount() == 0;
+ }
public static int GetGoopyLoddlesCount()
{
int goopyLoddles = 0;
@@ -173,22 +184,23 @@ public static int GetGoopyLoddlesCount()
return goopyLoddles;
}
- //[HarmonyPatch(typeof(GameManager), nameof(GameManager.Update))]
- //[HarmonyPostfix]
- //public static void Update_Postfix()
- //{
- // if (Input.GetKeyDown(KeyCode.F3))
- // {
- // foreach (int bi in biomePollution.Keys)
- // {
- // BiomeManager bm;
- // bm = bi != -1 ? EngineHub.BiomeSaver.LookUpBiomeByID(bi) : nonBiomeManager;
- // log.LogInfo(bm.biomeDisplayName);
- // log.LogInfo($"goop: {biomePollution[bi]["goopPollution"]}");
- // log.LogInfo($"plastic: {biomePollution[bi]["plasticCloudPollution"]}");
- // log.LogInfo($"litter: {biomePollution[bi]["litterPollution"]}");
- // }
- // }
- //}
+ public static void OnHoloBadgeCollected(GameEvent e)
+ {
+ allHoloBadgesFound = ((HoloBadgeCollected)e).allHaveBeenCollected;
+ }
+
+ public static void OnLoddleMetPlayer(GameEvent e)
+ {
+ EngineHub.GameProgressTracker.StartCoroutine(ExtraTrackersMod.UpdateAllLoddleTypesFound());
+ }
+
+ public static IEnumerator UpdateAllLoddleTypesFound()
+ {
+ for (int i = 0; i < 2; i++)
+ {
+ yield return new WaitForEndOfFrame();
+ }
+ allLoddleTypesFound = GetEncounteredLoddleTypes().Count == typeRemarkMapping.Count;
+ }
}
}
diff --git a/ExtraTrackersPlugin.cs b/ExtraTrackersPlugin.cs
index 2d27977..6e6770d 100644
--- a/ExtraTrackersPlugin.cs
+++ b/ExtraTrackersPlugin.cs
@@ -15,7 +15,7 @@ public class ExtraTrackersPlugin : BaseUnityPlugin
{
public const string myGUID = "com.paperish.extratrackers";
public const string pluginName = "Extra Trackers";
- public const string versionString = "1.1.1";
+ public const string versionString = "1.1.2";
private static readonly Harmony harmony = new Harmony(myGUID);
private void Awake()
diff --git a/GameProgressTrackerPatches.cs b/GameProgressTrackerPatches.cs
index edeaec4..27a7ec5 100644
--- a/GameProgressTrackerPatches.cs
+++ b/GameProgressTrackerPatches.cs
@@ -24,5 +24,14 @@ public static bool HandleBiomePollutionShift_Prefix(GameEvent e)
}
return true;
}
+
+ [HarmonyPatch(nameof(GameProgressTracker.RegisterForEvents))]
+ [HarmonyPostfix]
+ public static void RegisterForEvents_Postfix(GameProgressTracker __instance)
+ {
+ EngineHub.EventManager.Register(new GameEvent.Handler(ExtraTrackersMod.GetGoopyLoddlesCount));
+ EngineHub.EventManager.Register(new GameEvent.Handler(ExtraTrackersMod.OnHoloBadgeCollected));
+ EngineHub.EventManager.Register(new GameEvent.Handler(ExtraTrackersMod.OnLoddleMetPlayer));
+ }
}
}
diff --git a/MenuPatches.cs b/MenuPatches.cs
index b1c4b9e..ab4ebed 100644
--- a/MenuPatches.cs
+++ b/MenuPatches.cs
@@ -231,6 +231,11 @@ public static void MainMenuStart_Postfix(MainMenu __instance)
string version = versionLabel.text;
versionLabel.text = $"{version}\n{ExtraTrackersPlugin.pluginName} v{ExtraTrackersPlugin.versionString}";
versionLabel.alignment = TextAlignmentOptions.BottomRight;
- }
+
+ ExtraTrackersMod.nonBiomeIsComplete = false;
+ ExtraTrackersMod.allHoloBadgesFound = false;
+ ExtraTrackersMod.allLoddleTypesFound = false;
+ ExtraTrackersMod.allGoopyLoddlesCleaned = false;
+ }
}
}