//Aethermancer Demo Autosplitter V1.0 15/02/2025 //Timed via Load Remover - Please compare to Game Time //Credit to: //TheDementedSalad - Created the splitter //Joey - Testing state("Sniper Killer") {} startup { timer.CurrentTimingMethod = TimingMethod.GameTime; Assembly.Load(File.ReadAllBytes("Components/asl-help")).CreateInstance("Unity"); vars.Helper.GameName = "Sniper Killer"; vars.Helper.Settings.CreateFromXml("Components/SniperKiller.Settings.xml", false); vars.Helper.LoadSceneManager = true; vars.completedSplits = new HashSet(); } init { vars.Helper.TryLoad = (Func)(mono => { vars.Helper["currentState"] = mono.Make("GameManager", "instance", "currentGameState"); return true; }); } onStart { vars.completedSplits.Clear(); } start { return current.activeScene == "SK_00_Prologue" && old.activeScene == "SK_LoadingScreenScene"; } update { current.activeScene = vars.Helper.Scenes.Active.Name == null ? current.activeScene : vars.Helper.Scenes.Active.Name; //creates a function that tracks the games active Scene name //if(current.activeScene != old.activeScene) vars.Log("active: Old: \"" + old.activeScene + "\", Current: \"" + current.activeScene + "\""); //Prints when a new scene becomes active } split { string setting = ""; if(current.activeScene != old.activeScene){ setting = "Level_" + current.activeScene; } // Debug. Comment out before release. if (!string.IsNullOrEmpty(setting)) vars.Log(setting); if (settings.ContainsKey(setting) && settings[setting] && vars.completedSplits.Add(setting)){ return true; } } isLoading { return current.currentState == 0 || current.currentState == 1 || current.currentState == 2; } reset { return current.activeScene == "SK_00_Prologue" && old.activeScene == "SK_LoadingScreenScene"; }