state("FREEFLOW") { } startup { Assembly.Load(File.ReadAllBytes(@"Components\asl-help")).CreateInstance("Unity"); vars.Helper.LoadSceneManager = true; refreshRate = 60; vars.RunScenes = new HashSet(StringComparer.OrdinalIgnoreCase) { "Tutorial", "Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Level 6", "Level 7", "Level 7.1", "Level 7.2", "Level 7.3", "Level 8", "You Win" }; } init { vars.Helper.TryLoad = (Func)(mono => { return true; }); } update { string activeScene = vars.Helper.Scenes.Active.Name ?? ""; if (!String.IsNullOrEmpty(activeScene)) current.activeScene = activeScene; string loadedScene = ""; foreach (var scene in vars.Helper.Scenes.Loaded) { string name = scene.Name ?? ""; if (!String.IsNullOrEmpty(name)) { loadedScene = name; break; } } if (!String.IsNullOrEmpty(loadedScene)) current.scene = loadedScene; return true; } start { return String.Equals(old.scene, "MainMenu", StringComparison.OrdinalIgnoreCase) && String.Equals(current.scene, "Tutorial", StringComparison.OrdinalIgnoreCase); } split { if (String.IsNullOrEmpty(old.scene) || String.IsNullOrEmpty(current.scene) || String.Equals(old.scene, current.scene, StringComparison.OrdinalIgnoreCase)) return false; return vars.RunScenes.Contains(current.scene) && !String.Equals(current.scene, "Tutorial", StringComparison.OrdinalIgnoreCase); } reset { return !String.Equals(old.scene, "MainMenu", StringComparison.OrdinalIgnoreCase) && String.Equals(current.scene, "MainMenu", StringComparison.OrdinalIgnoreCase); } isLoading { return String.IsNullOrEmpty(current.activeScene) || !String.Equals(current.activeScene, current.scene, StringComparison.OrdinalIgnoreCase); } exit { vars.Helper.Dispose(); }