state("Butcher's Creek"){} startup { Assembly.Load(File.ReadAllBytes("Components/asl-help")).CreateInstance("Unity"); vars.Helper.GameName = "Butcher's Creek [Demo]"; vars.Helper.LoadSceneManager = true; dynamic[,] _settings = { { "PassageToBarn", true, "Passage To Barn", null }, { "MAP_Barn", true, "Exit Barn", null }, { "MAP02_Demo", true, "In Cage", null }, { "DemoEndScene", true, "Demo End", null }, { "AutoReset", false, "Auto Reset upon return to Menu", null }, }; vars.Helper.Settings.Create(_settings); vars.Helper.AlertLoadless(); vars.CompletedSplits = new List<string>(); } update { if(!String.IsNullOrWhiteSpace(vars.Helper.Scenes.Active.Name)) current.activeScene = vars.Helper.Scenes.Active.Name; if(!String.IsNullOrWhiteSpace(vars.Helper.Scenes.Loaded[0].Name)) current.loadingScene = vars.Helper.Scenes.Loaded[0].Name; if(current.activeScene != old.activeScene) vars.Log("active: Old: \"" + old.activeScene + "\", Current: \"" + current.activeScene + "\""); if(current.loadingScene != old.loadingScene) vars.Log("loading: Old: \"" + old.loadingScene + "\", Current: \"" + current.loadingScene + "\""); } onStart { vars.CompletedSplits.Clear(); } start { return old.activeScene == "OpeningTextScene" && current.activeScene == "MAP01"; } split { if (settings[current.activeScene.ToString()] && old.activeScene != current.activeScene && !vars.CompletedSplits.Contains(current.activeScene.ToString())) { vars.CompletedSplits.Add(current.activeScene); return true; } } isLoading { return current.loadingScene != current.activeScene; } reset { return settings["AutoReset"] && old.activeScene != "TitleScene" && current.activeScene == "TitleScene"; }