private void LoadLevelAsyncCompleted(AsyncOperation obj) { _grid = FindObjectOfType <BulbGrid>(); if (_grid) { var currentChapterIndex = ApplicationController.Instance.ChapterController.CurrentChapterIndex; try { var levelData = ApplicationController.Instance.DataController.GetLevelDataForIngameLevel(currentChapterIndex, CurrentLevelIndex); if (GameState.CurrentState == GameStates.Game) { BulbEvents.StartTimer(); var analytics = ApplicationController.Instance.AnalyticsController; var chapterIndexParam = new KeyValuePair <string, object>(BulbEvents.ChapterIndexParam, currentChapterIndex); var levelIndexParam = new KeyValuePair <string, object>(BulbEvents.LevelIndexParam, CurrentLevelIndex); analytics.LogCustomEvent(BulbEvents.Category_UserEvents, BulbEvents.Action_Level, BulbEvents.LevelStarted, chapterIndexParam, levelIndexParam); } StartCoroutine(LoadLevel(CurrentLevelIndex.ToString(), levelData)); } catch (Exception e) { Debug.LogWarningFormat("{0} | Error while loading level: {1}", this, e.Message); } } else { Debug.LogError("No grid found in game scene!"); } }
protected virtual void Awake() { _grid = FindObjectOfType <BulbGrid>(); _image = GetComponentInChildren <Image>(); DebugColor = Color.white; }
private void Awake() { _transformGesture = GetComponent <TransformGesture>(); _transformGesture.TransformStarted += _transformGesture_TransformStarted; _transformGesture.Transformed += _transformGesture_Transformed; _transformGesture.TransformCompleted += _transformGesture_TransformCompleted; _grid = FindObjectOfType <BulbGrid>(); }
private void Awake() { Characters = new List <CharacterBase>(); _grid = FindObjectOfType <BulbGrid>(); if (_grid) { _grid.OnGridChanged += UpdateAllCharacters; } }
private void Awake() { _grid = FindObjectOfType <BulbGrid>(); if (_grid) { _grid.OnGridChanged += UpdateVisuals; _grid.OnGridChanged += UpdateWirePieces; _canvasController = ApplicationController.Instance.CanvasController; SettingsManager.Settings.ShowCurrent.PropertyChanged += ShowDebugValue; SettingsManager.Settings.ShowVoltage.PropertyChanged += ShowDebugValue; SettingsManager.PropertyChanged += SettingsManager_PropertyChanged; } }
private void OnEnable() { _grid = FindObjectOfType <BulbGrid>(); _selectionController = ApplicationController.Instance.SelectionController; _tapGesture = transform.GetOrAddComponent <TapGesture>(); _tapGesture.Tapped += _tapGesture_Tapped; _transformGesture = transform.GetOrAddComponent <ScreenTransformGesture>(); _transformGesture.TransformStarted += _transformGesture_TransformStarted; _transformGesture.Transformed += _transformGesture_Transformed; _transformGesture.TransformCompleted += _transformGesture_TransformCompleted; GameState.CurrentState = GameStates.Game; }
private void Awake() { _grid = FindObjectOfType <BulbGrid>(); if (_grid == null) { Debug.LogFormat("{0} | No grid object found in scene!", this); } Init(); RowsProperty.onValueChanged.AddListener(OnRowsPropertyChanged); ColumnsProperty.onValueChanged.AddListener(OnColumnsPropertyChanged); CellSizeProperty.onValueChanged.AddListener(OnCellSizePropertyChanged); _grid.OnGridInitialized += Init; _grid.OnGridChanged += Init; }
private void Awake() { _grid = FindObjectOfType <BulbGrid>(); _selectionController = ApplicationController.Instance.SelectionController; _tapGesture = transform.GetOrAddComponent <TapGesture>(); _tapGesture.Tapped += _tapGesture_Tapped; _transformGesture = transform.GetOrAddComponent <ScreenTransformGesture>(); _transformGesture.TransformStarted += _transformGesture_TransformStarted; _transformGesture.Transformed += _transformGesture_Transformed; _transformGesture.TransformCompleted += _transformGesture_TransformCompleted; LevelController.OnLevelLoaded += (levelName, levelData) => LevelName.text = levelName; DataController.OnLevelSaved += (levelName) => LevelName.text = levelName; BuildVersionNumber.text = Application.version; GameState.CurrentState = GameStates.Editor; }
private void Awake() { _applicationController = ApplicationController.Instance; _grid = FindObjectOfType <BulbGrid>(); SaveLevelPopup.OnSaveLevelButtonClicked += (input) => { SaveLevel(input); }; LoadLevelPopup.OnLoadLevelButtonClicked += (levelName) => { LoadLevel(levelName); }; #if UNITY_ANDROID AndroidStreamingAssets.Extract(); CopyAll(new DirectoryInfo(AndroidStreamingAssets.Path), new DirectoryInfo(Application.persistentDataPath)); #else CopyAll(new DirectoryInfo(Application.StreamingAssetsPath), new DirectoryInfo(Application.persistentDataPath)); #endif }
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); }
public static void Init(BulbGrid grid) { _grid = grid; _selectionController = ApplicationController.Instance.SelectionController; }