public void CreateNewLevel() { if (CurrentLevel != null) { CurrentLevel.Clean(); CurrentLevel = null; } CurrentLevel = new Level(); }
public IEnumerator LoadLevel(string levelName, LevelData levelData) { if (CurrentLevel != null) { CurrentLevel.Clean(); CurrentLevel = null; } CurrentLevel = new Level() { GoalDescription = levelData.GoalDescription, Max4VBatteries = levelData.Max4VBatteries, Max9VBatteries = levelData.Max9VBatteries, MaxBulbs = levelData.MaxBulbs, MaxBuzzers = levelData.MaxBuzzers, MaxMotors = levelData.MaxMotors, MaxSwitches = levelData.MaxSwitches, MaxWire = levelData.MaxWireAvailable, CanBridge = levelData.CanBridge, CanSnap = levelData.CanSnap, CanBranch = levelData.CanBranch, SuccessByShortCircuit = levelData.SuccessByShortCircuit }; var characterController = ApplicationController.Instance.CharacterController; characterController.ClearAllCharacters(); var wireController = ApplicationController.Instance.WireController; wireController.ClearAllWirePieces(); _grid = FindObjectOfType <BulbGrid>(); _grid.LoadSaveData(levelData.Grid); yield return(null); characterController.LoadCharacters <BatteryCharacter, BatteryCharacterData>(levelData.Batteries); characterController.LoadCharacters <LightBulbCharacter, LightBulbCharacterData>(levelData.LightBulbs); characterController.LoadCharacters <ObstructionCharacter, ObstructionCharacterData>(levelData.Obstructions); characterController.LoadCharacters <MotorCharacter, MotorCharacterData>(levelData.Motors); characterController.LoadCharacters <BuzzerCharacter, BuzzerCharacterData>(levelData.Buzzers); characterController.LoadCharacters <SwitchCharacter, SwitchCharacterData>(levelData.Switches); characterController.UpdateAllCharacters(); wireController.LoadSaveData(levelData.WirePieces); _grid.FillZoomGrid(); if (GameState.CurrentState == GameStates.Game) { var instructionPopup = InstructionsPopup.Instance; instructionPopup.SetDescription(levelData.GoalDescription); instructionPopup.TogglePopup(true); } if (OnLevelLoaded != null) { OnLevelLoaded(levelName, levelData); } _grid.SetGridMode(BulbGrid.GridMode.DrawWire); Debug.LogFormat("{0} | Loaded level: {1}", this, levelName); }