about summary refs log tree commit diff stats
path: root/Manifold Garden.asl
diff options
context:
space:
mode:
Diffstat (limited to 'Manifold Garden.asl')
-rw-r--r--Manifold Garden.asl14
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"]