// By 10_days_till_xmas // asl-help by Ero (https://github.com/just-ero/asl-help) state("Shady Knight") {} startup { Assembly.Load(File.ReadAllBytes("Components/asl-help")).CreateInstance("Unity"); vars.Helper.GameName = "Shady Knight"; vars.MissionStates = new ExpandoObject(); vars.MissionStates.Intro = 0; vars.MissionStates.InProcess = 1; vars.MissionStates.Complete = 2; vars.Helper.AlertGameTime(); } onStart { vars.TotalGameTime = 0d; } init { vars.TotalGameTime = 0d; vars.WaitForGameTime = false; vars.Helper.TryLoad = (Func<dynamic, bool>)(mono => { vars.Helper["MissionTime"] = mono.Make<float>("Game", "mission", "rawResults", "time"); vars.Helper["MissionState"] = mono.Make<int>("Game", "mission", "state"); vars.Helper["LevelIndex"] = mono.Make<int>("Game", "mission", "levelData", "index"); return true; }); } update { } start { return old.MissionState == vars.MissionStates.Intro && current.MissionState == vars.MissionStates.InProcess; } split { return old.MissionState == vars.MissionStates.InProcess && current.MissionState == vars.MissionStates.Complete; } reset { if ( old.LevelIndex != current.LevelIndex ) return current.MissionState != vars.MissionStates.Intro && current.MissionState == vars.MissionStates.Intro && old.LevelIndex != current.LevelIndex; } gameTime { if (current.MissionTime < old.MissionTime) { vars.TotalGameTime += old.MissionTime; } if (current.MissionState == 1) return TimeSpan.FromSeconds(vars.TotalGameTime + current.MissionTime); } isLoading { return true; }