diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2022-08-28 13:22:13 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2022-08-28 13:22:13 -0400 |
commit | ea4800959026f5008a2dc71a18df3c915066122a (patch) | |
tree | b4945f572c00ae19963bd76edcff1321fddd1bc7 | |
parent | 0e2323e18ae8fc989d19602baf06d159e85001c1 (diff) | |
download | autosplitters-ea4800959026f5008a2dc71a18df3c915066122a.tar.gz autosplitters-ea4800959026f5008a2dc71a18df3c915066122a.tar.bz2 autosplitters-ea4800959026f5008a2dc71a18df3c915066122a.zip |
[Manifold Garden] Gravity change tracking for Minimum Gravity Changes
-rw-r--r-- | Manifold Garden.asl | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Manifold Garden.asl b/Manifold Garden.asl index 3968955..517f55b 100644 --- a/Manifold Garden.asl +++ b/Manifold Garden.asl | |||
@@ -45,6 +45,7 @@ startup { | |||
45 | 45 | ||
46 | settings.Add("raymarchitecture", true, "Split on Raymarchitecture (ending cutscene)"); | 46 | settings.Add("raymarchitecture", true, "Split on Raymarchitecture (ending cutscene)"); |
47 | settings.Add("norepeats",false,"Split only on the first encounter of each level"); | 47 | settings.Add("norepeats",false,"Split only on the first encounter of each level"); |
48 | settings.Add("gravChanges",false, "Override first text component with a Gravity Changes count"); | ||
48 | settings.Add("every",true,"Split on every level change"); | 49 | settings.Add("every",true,"Split on every level change"); |
49 | settings.Add("fall",false,"Including all ending falling scenes","every"); | 50 | settings.Add("fall",false,"Including all ending falling scenes","every"); |
50 | settings.Add("allGodCubes", false, "All God Cubes waypoints"); | 51 | settings.Add("allGodCubes", false, "All God Cubes waypoints"); |
@@ -156,6 +157,9 @@ init { | |||
156 | var versionNum = mono.GetClass("VersionNumber"); | 157 | var versionNum = mono.GetClass("VersionNumber"); |
157 | vars.Helper["version"] = versionNum.MakeString("instance", "_text"); | 158 | vars.Helper["version"] = versionNum.MakeString("instance", "_text"); |
158 | 159 | ||
160 | var rigidCon = mono.GetClass("RigidbodyController"); | ||
161 | vars.Helper["gravity"] = gameMan.Make<int>("playerController", rigidCon["_gravityDirection"]); | ||
162 | |||
159 | current.onStartScreen = false; | 163 | current.onStartScreen = false; |
160 | 164 | ||
161 | return true; | 165 | return true; |
@@ -176,6 +180,19 @@ init { | |||
176 | } | 180 | } |
177 | } | 181 | } |
178 | } | 182 | } |
183 | |||
184 | vars.updateText = false; | ||
185 | if (settings["gravChanges"]) { | ||
186 | foreach (LiveSplit.UI.Components.IComponent component in timer.Layout.Components) { | ||
187 | if (component.GetType().Name == "TextComponent") { | ||
188 | vars.tc = component; | ||
189 | vars.tcs = vars.tc.Settings; | ||
190 | vars.updateText = true; | ||
191 | vars.log("Found text component at " + component); | ||
192 | break; | ||
193 | } | ||
194 | } | ||
195 | } | ||
179 | } | 196 | } |
180 | 197 | ||
181 | update { | 198 | update { |
@@ -184,6 +201,7 @@ update { | |||
184 | 201 | ||
185 | current.level = vars.Helper.Scenes.Active.Index; | 202 | current.level = vars.Helper.Scenes.Active.Index; |
186 | current.isLoadingGameFromUI = vars.Helper["isLoadingGameFromUI"].Current; | 203 | current.isLoadingGameFromUI = vars.Helper["isLoadingGameFromUI"].Current; |
204 | current.gravity = vars.Helper["gravity"].Current; | ||
187 | 205 | ||
188 | if (!vars.doneFirstLook) { | 206 | if (!vars.doneFirstLook) { |
189 | vars.doneFirstLook = true; | 207 | vars.doneFirstLook = true; |
@@ -211,6 +229,12 @@ update { | |||
211 | if (!vars.studioScreenDone) { | 229 | if (!vars.studioScreenDone) { |
212 | vars.studioScreenDone = !current.isLoadingGameFromUI; | 230 | vars.studioScreenDone = !current.isLoadingGameFromUI; |
213 | } | 231 | } |
232 | if (current.gravity != old.gravity) { | ||
233 | vars.gravChanges += 1; | ||
234 | if (settings["gravChanges"] && vars.updateText) { | ||
235 | vars.tcs.Text2 = vars.gravChanges.ToString(); | ||
236 | } | ||
237 | } | ||
214 | } | 238 | } |
215 | } | 239 | } |
216 | 240 | ||
@@ -235,6 +259,11 @@ start { | |||
235 | vars.prev.Clear(); | 259 | vars.prev.Clear(); |
236 | vars.firstRoom = false; | 260 | vars.firstRoom = false; |
237 | vars.inEnding = false; | 261 | vars.inEnding = false; |
262 | vars.gravChanges = 0; | ||
263 | if (settings["gravChanges"] && vars.updateText) { | ||
264 | vars.tcs.Text1 = "Gravity Changes:"; | ||
265 | vars.tcs.Text2 = "0"; | ||
266 | } | ||
238 | return true; | 267 | return true; |
239 | } | 268 | } |
240 | } | 269 | } |
@@ -302,6 +331,13 @@ reset { | |||
302 | return current.onStartScreen && !old.onStartScreen; | 331 | return current.onStartScreen && !old.onStartScreen; |
303 | } | 332 | } |
304 | 333 | ||
334 | onReset { | ||
335 | if (settings["gravChanges"] && vars.updateText) { | ||
336 | vars.tcs.Text1 = "Gravity Changes:"; | ||
337 | vars.tcs.Text2 = "0"; | ||
338 | } | ||
339 | } | ||
340 | |||
305 | exit | 341 | exit |
306 | { | 342 | { |
307 | vars.Helper.Dispose(); | 343 | vars.Helper.Dispose(); |