diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2022-09-11 14:30:13 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2022-09-11 14:30:13 -0400 |
commit | 0f0d0aa51075eac65279c0c74ef49282fe61d5fe (patch) | |
tree | 6a53c423b3b46c537ee51ee180c90bbea29bbbd4 | |
parent | 8007db85e774cd6f80b3fbc1c5724e777c00f09f (diff) | |
download | autosplitters-0f0d0aa51075eac65279c0c74ef49282fe61d5fe.tar.gz autosplitters-0f0d0aa51075eac65279c0c74ef49282fe61d5fe.tar.bz2 autosplitters-0f0d0aa51075eac65279c0c74ef49282fe61d5fe.zip |
[Manifold Garden] Split on planting god cube
-rw-r--r-- | Manifold Garden.asl | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Manifold Garden.asl b/Manifold Garden.asl index 530fa52..c2e86c0 100644 --- a/Manifold Garden.asl +++ b/Manifold Garden.asl | |||
@@ -46,6 +46,7 @@ startup { | |||
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("gravChanges",false, "Override first text component with a Gravity Changes count"); |
49 | settings.Add("planted",false,"Split when a god cube is planted"); | ||
49 | settings.Add("every",true,"Split on every level change"); | 50 | settings.Add("every",true,"Split on every level change"); |
50 | settings.Add("fall",false,"Including all ending falling scenes","every"); | 51 | settings.Add("fall",false,"Including all ending falling scenes","every"); |
51 | settings.Add("allGodCubes", false, "All God Cubes waypoints"); | 52 | settings.Add("allGodCubes", false, "All God Cubes waypoints"); |
@@ -57,6 +58,7 @@ startup { | |||
57 | vars.prev = new List<int>(); | 58 | vars.prev = new List<int>(); |
58 | vars.firstRoom = false; | 59 | vars.firstRoom = false; |
59 | vars.inEnding = false; | 60 | vars.inEnding = false; |
61 | vars.maxGodPlanted = 0; | ||
60 | vars.noSplitScenes = new List<String>{ | 62 | vars.noSplitScenes = new List<String>{ |
61 | "StudioLogoScreen", | 63 | "StudioLogoScreen", |
62 | "RequiredComponents", | 64 | "RequiredComponents", |
@@ -160,6 +162,9 @@ init { | |||
160 | var rigidCon = mono.GetClass("RigidbodyController"); | 162 | var rigidCon = mono.GetClass("RigidbodyController"); |
161 | vars.Helper["gravity"] = gameMan.Make<int>("playerController", rigidCon["_gravityDirection"]); | 163 | vars.Helper["gravity"] = gameMan.Make<int>("playerController", rigidCon["_gravityDirection"]); |
162 | 164 | ||
165 | var mandalaMan = mono.GetClass("MandalaManager"); | ||
166 | vars.Helper["godCubesPlanted"] = gameMan.MakeList<int>("s_instance", "mandalaManager", mandalaMan["PlacedGodCubes"]); | ||
167 | |||
163 | current.onStartScreen = false; | 168 | current.onStartScreen = false; |
164 | current.onMandalaScene = false; | 169 | current.onMandalaScene = false; |
165 | 170 | ||
@@ -239,6 +244,7 @@ update { | |||
239 | vars.tcs.Text2 = vars.gravChanges.ToString(); | 244 | vars.tcs.Text2 = vars.gravChanges.ToString(); |
240 | } | 245 | } |
241 | } | 246 | } |
247 | current.godCubesPlanted = vars.Helper["godCubesPlanted"].Current.Count; | ||
242 | } | 248 | } |
243 | } | 249 | } |
244 | 250 | ||
@@ -267,6 +273,7 @@ start { | |||
267 | vars.prev.Clear(); | 273 | vars.prev.Clear(); |
268 | vars.firstRoom = false; | 274 | vars.firstRoom = false; |
269 | vars.inEnding = false; | 275 | vars.inEnding = false; |
276 | vars.maxGodPlanted = current.godCubesPlanted; | ||
270 | vars.gravChanges = 0; | 277 | vars.gravChanges = 0; |
271 | if (settings["gravChanges"] && vars.updateText) { | 278 | if (settings["gravChanges"] && vars.updateText) { |
272 | vars.tcs.Text1 = "Gravity Changes:"; | 279 | vars.tcs.Text1 = "Gravity Changes:"; |
@@ -323,6 +330,13 @@ split { | |||
323 | vars.prev.Add(current.level); | 330 | vars.prev.Add(current.level); |
324 | } | 331 | } |
325 | 332 | ||
333 | // Optionally split when a god cube is actually planted in a socket. | ||
334 | if (settings["planted"] && current.godCubesPlanted > vars.maxGodPlanted) { | ||
335 | vars.log("SPLIT on planted god cube"); | ||
336 | vars.maxGodPlanted = current.godCubesPlanted; | ||
337 | return true; | ||
338 | } | ||
339 | |||
326 | // Final split of the game: | 340 | // Final split of the game: |
327 | // Split after being in one of the ending cutscenes for 1.1 seconds. | 341 | // Split after being in one of the ending cutscenes for 1.1 seconds. |
328 | if (settings["raymarchitecture"] | 342 | if (settings["raymarchitecture"] |