state("The Stanley Parable Ultra Deluxe"){} startup { Assembly.Load(File.ReadAllBytes("Components/asl-help")).CreateInstance("Unity"); vars.Helper.GameName = "The Stanley Parable: Ultra Deluxe"; vars.Helper.LoadSceneManager = true; vars.Helper.AlertGameTime(); vars.LoadingScenes = new List() { "LoadingScene_UD_MASTER", "Menu_UD_MASTER", }; } init { vars.Helper.TryLoad = (Func)(mono => { var GM = mono["GameMaster", 1]; var FOC = mono["FigleyOverlayController"]; var SC = mono["StanleyController"]; vars.Helper["PauseMenu"] = GM.Make("PAUSEMENUACTIVE"); vars.Helper["CollectedFigley"] = FOC.Make("Instance", "count"); vars.Helper["Movement"] = SC.Make("_instance", "movementInput"); vars.Helper["MouseMoved"] = GM.Make("_instance", "MouseMoved"); return true; }); } 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 + "\""); } start { return (current.activeScene == "map1_UD_MASTER" && ((vars.Helper["MouseMoved"].Changed) || (vars.Helper["Movement"].Changed))); } onStart { print("\nNew run started!\n----------------\n"); } split { return ((current.activeScene == "map1_UD_MASTER" && old.activeScene == "LoadingScene_UD_MASTER") || (current.activeScene == "MemoryzonePartTwo_UD_MASTER" && old.activeScene == "LoadingScene_UD_MASTER") || (current.activeScene == "MemoryzonePartThree_UD_MASTER" && old.activeScene == "LoadingScene_UD_MASTER")); } onSplit { print("\nSplit\n-----\n"); } isLoading { if (!(vars.Helper["PauseMenu"].Current || vars.LoadingScenes.Contains(current.activeScene))) { return false; } return true; } onReset { print("\nRESET\n-----\n"); } exit { timer.IsGameTimePaused = true; }