state("Cell Machine") { } startup { Assembly.Load(File.ReadAllBytes("Components/asl-help")).CreateInstance("Unity"); vars.Helper.GameName = "Cell Machine"; vars.Helper.LoadSceneManager = true; vars.CompletedLevels = new HashSet<int>(); } init { vars.Helper.TryLoad = (Func<dynamic, bool>)(mono => { var GD = mono["GameData"]; vars.Helper["level"] = GD.Make<int>( "level" ); var GM = mono["GridManager"]; vars.Helper["levelWon"] = GM.Make<bool>( "instance", "levelWon" ); return true; }); current.activeScene = ""; } update { current.activeScene = vars.Helper.Scenes.Active.Name ?? current.activeScene; } start { return old.activeScene == "Title" && current.activeScene == "Game"; } onStart { vars.CompletedLevels.Clear(); } split { return !old.levelWon && current.levelWon && vars.CompletedLevels.Add(current.level); }