state("Sorry We're Closed"){} startup { vars.Log = (Action<object>)(output => print("[Sorry We're Closed] " + output)); Assembly.Load(File.ReadAllBytes("Components/asl-help")).CreateInstance("Unity"); vars.Helper.GameName = "Sorry We're Closed"; vars.Helper.LoadSceneManager = true; dynamic[,] _settings = { { "Splits", true, "Splits", null }, { "D1Combat_Station_Boss", true, "Day 1 - Jenny", "Splits" }, { "D2Combat_Aquarium_Boss", true, "Day 2 - Matilda", "Splits" }, { "D3Combat_Crypt", true, "Day 3 - Gabriele", "Splits" }, { "D3Combat_Palace_Boss", true, "Day 3 - Dream Eater", "Splits" }, { "D4Combat_Hotel_Boss_Outro", false, "Day 4? - The Duchess", "Splits" }, { "End_Credits", true, "Day X - Go To Work", "Splits" }, { "Artifacts", false, "On Artifact Collected (16 Splits)", "Splits" }, { "Artifacts1", true, "Artifact 1", "Artifacts" }, { "Artifacts2", true, "Artifact 2", "Artifacts" }, { "Artifacts3", true, "Artifact 3", "Artifacts" }, { "Artifacts4", true, "Artifact 4", "Artifacts" }, { "Artifacts5", true, "Artifact 5", "Artifacts" }, { "Artifacts6", true, "Artifact 6", "Artifacts" }, { "Artifacts7", true, "Artifact 7", "Artifacts" }, { "Artifacts8", true, "Artifact 8", "Artifacts" }, { "Artifacts9", true, "Artifact 9", "Artifacts" }, { "Artifacts10", true, "Artifact 10", "Artifacts" }, { "Artifacts11", true, "Artifact 11", "Artifacts" }, { "Artifacts12", true, "Artifact 12", "Artifacts" }, { "Artifacts13", true, "Artifact 13", "Artifacts" }, { "Artifacts14", true, "Artifact 14", "Artifacts" }, { "Artifacts15", true, "Artifact 15", "Artifacts" }, { "Artifacts16", true, "Artifact 16", "Artifacts" }, { "Critters", false, "On Critter Crushed (26 Splits)", "Splits" }, { "Critters1", true, "Critter 1", "Critters" }, { "Critters2", true, "Critter 2", "Critters" }, { "Critters3", true, "Critter 3", "Critters" }, { "Critters4", true, "Critter 4", "Critters" }, { "Critters5", true, "Critter 5", "Critters" }, { "Critters6", true, "Critter 6", "Critters" }, { "Critters7", true, "Critter 7", "Critters" }, { "Critters8", true, "Critter 8", "Critters" }, { "Critters9", true, "Critter 9", "Critters" }, { "Critters10", true, "Critter 10", "Critters" }, { "Critters11", true, "Critter 11", "Critters" }, { "Critters12", true, "Critter 12", "Critters" }, { "Critters13", true, "Critter 13", "Critters" }, { "Critters14", true, "Critter 14", "Critters" }, { "Critters15", true, "Critter 15", "Critters" }, { "Critters16", true, "Critter 16", "Critters" }, { "Critters17", true, "Critter 17", "Critters" }, { "Critters18", true, "Critter 18", "Critters" }, { "Critters19", true, "Critter 19", "Critters" }, { "Critters20", true, "Critter 20", "Critters" }, { "Critters21", true, "Critter 21", "Critters" }, { "Critters22", true, "Critter 22", "Critters" }, { "Critters23", true, "Critter 23", "Critters" }, { "Critters24", true, "Critter 24", "Critters" }, { "Critters25", true, "Critter 25", "Critters" }, { "Critters26", true, "Critter 26", "Critters" }, { "AutoReset", false, "Auto Reset when return to Main Menu", null }, }; vars.Helper.Settings.Create(_settings); vars.Helper.AlertLoadless(); vars.CompletedSplits = new List<string>(); } init { vars.Helper.TryLoad = (Func<dynamic, bool>)(mono => { vars.Helper["isMainMenu"] = mono.Make<bool>("GameManager", "inst", "isMainMenu"); vars.Helper["changingLevel"] = mono.Make<bool>("GameManager", "inst", "changingLevel"); vars.Helper["loading"] = mono.Make<bool>("AddressablesManager", "loadingScene"); vars.Helper["complete"] = mono.Make<bool>("StatsManager", "inst", "sceneStats", "complete"); vars.Helper["artifactsCollectedTown"] = mono.Make<int>("StatsManager", "inst", "stats", "town", "artifactsCollected"); vars.Helper["artifactsCollectedStation"] = mono.Make<int>("StatsManager", "inst", "stats", "station", "artifactsCollected"); vars.Helper["artifactsCollectedAquarium"] = mono.Make<int>("StatsManager", "inst", "stats", "aquarium", "artifactsCollected"); vars.Helper["artifactsCollectedCrypt"] = mono.Make<int>("StatsManager", "inst", "stats", "crypt", "artifactsCollected"); vars.Helper["artifactsCollectedPalace"] = mono.Make<int>("StatsManager", "inst", "stats", "palace", "artifactsCollected"); vars.Helper["artifactsCollectedHotel"] = mono.Make<int>("StatsManager", "inst", "stats", "hotel", "artifactsCollected"); vars.Helper["crittersCrushedTown"] = mono.Make<int>("StatsManager", "inst", "stats", "town", "crittersCrushed"); vars.Helper["crittersCrushedStation"] = mono.Make<int>("StatsManager", "inst", "stats", "station", "crittersCrushed"); vars.Helper["crittersCrushedAquarium"] = mono.Make<int>("StatsManager", "inst", "stats", "aquarium", "crittersCrushed"); vars.Helper["crittersCrushedCrypt"] = mono.Make<int>("StatsManager", "inst", "stats", "crypt", "crittersCrushed"); vars.Helper["crittersCrushedPalace"] = mono.Make<int>("StatsManager", "inst", "stats", "palace", "crittersCrushed"); vars.Helper["crittersCrushedHotel"] = mono.Make<int>("StatsManager", "inst", "stats", "hotel", "crittersCrushed"); return true; }); vars.DayAnnounce = false; current.artifacts = 0; current.critters = 0; } start { return old.activeScene == "_Welcome" && current.activeScene == "D0_Michelle_Store"; } onStart { vars.CompletedSplits.Clear(); current.artifacts = 0; current.critters = 0; } update { { var sum = current.artifactsCollectedTown + current.artifactsCollectedStation + current.artifactsCollectedAquarium + current.artifactsCollectedCrypt + current.artifactsCollectedPalace + current.artifactsCollectedHotel; if (sum > current.artifacts) current.artifacts = sum; } { var sum1 = current.crittersCrushedTown + current.crittersCrushedStation + current.crittersCrushedAquarium + current.crittersCrushedCrypt + current.crittersCrushedPalace + current.crittersCrushedHotel; if (sum1 > current.critters) current.critters = sum1; } current.activeScene = vars.Helper.Scenes.Active.Name == null ? current.activeScene : vars.Helper.Scenes.Active.Name; current.loadingScene = vars.Helper.Scenes.Loaded[0].Name == null ? current.loadingScene : vars.Helper.Scenes.Loaded[0].Name; } split { if (current.activeScene != "End_Credits" && current.complete && !vars.CompletedSplits.Contains(current.activeScene.ToString())) { vars.CompletedSplits.Add(current.activeScene.ToString()); return settings[current.activeScene.ToString()]; } if (old.activeScene == "DX_Town" && current.activeScene == "End_Credits") { vars.CompletedSplits.Add(current.activeScene.ToString()); return settings[current.activeScene.ToString()]; } if (old.artifacts < current.artifacts) { if (settings["Artifacts"] && settings["Artifacts" + current.artifacts.ToString()] && !vars.CompletedSplits.Contains("Artifacts" + current.artifacts.ToString())) { vars.CompletedSplits.Add("Artifacts" + current.artifacts.ToString()); vars.Log("Artifact " + current.artifacts + " collected!"); return true; } } if (old.critters < current.critters) { if (settings["Critters"] && settings["Critters" + current.critters.ToString()] && !vars.CompletedSplits.Contains("Critters" + current.critters.ToString())) { vars.CompletedSplits.Add("Critters" + current.critters.ToString()); vars.Log("Critter " + current.critters + " crushed!"); return true; } } } isLoading { if (current.loadingScene != "End_Credits") { return current.changingLevel || current.loading || current.complete || current.activeScene == "D1_Announce" || current.activeScene == "D2_Announce" || current.activeScene == "D3_Announce" || current.activeScene == "D4_Announce" || current.activeScene == "DX_Announce" || current.loadingScene == "D1_Announce" || current.loadingScene == "D2_Announce" || current.loadingScene == "D3_Announce" || current.loadingScene == "D4_Announce" || current.loadingScene == "DX_Announce"; } else if (current.loadingScene == "End_Credits") return true; } reset { return settings["AutoReset"] && old.isMainMenu == false && current.isMainMenu == true; }