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 /Manifold Garden.asl | |
| parent | 8007db85e774cd6f80b3fbc1c5724e777c00f09f (diff) | |
| download | autosplitters-0f0d0aa51075eac65279c0c74ef49282fe61d5fe.tar.gz autosplitters-0f0d0aa51075eac65279c0c74ef49282fe61d5fe.tar.bz2 autosplitters-0f0d0aa51075eac65279c0c74ef49282fe61d5fe.zip | |
[Manifold Garden] Split on planting god cube
Diffstat (limited to 'Manifold Garden.asl')
| -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"] |
