Ejemplo n.º 1
0
        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!");
            }
        }
Ejemplo n.º 2
0
        protected virtual void Awake()
        {
            _grid  = FindObjectOfType <BulbGrid>();
            _image = GetComponentInChildren <Image>();

            DebugColor = Color.white;
        }
Ejemplo n.º 3
0
        private void Awake()
        {
            _transformGesture = GetComponent <TransformGesture>();
            _transformGesture.TransformStarted   += _transformGesture_TransformStarted;
            _transformGesture.Transformed        += _transformGesture_Transformed;
            _transformGesture.TransformCompleted += _transformGesture_TransformCompleted;

            _grid = FindObjectOfType <BulbGrid>();
        }
Ejemplo n.º 4
0
        private void Awake()
        {
            Characters = new List <CharacterBase>();

            _grid = FindObjectOfType <BulbGrid>();
            if (_grid)
            {
                _grid.OnGridChanged += UpdateAllCharacters;
            }
        }
Ejemplo n.º 5
0
        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;
            }
        }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
        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;
        }
Ejemplo n.º 8
0
        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;
        }
Ejemplo n.º 9
0
        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
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
 public static void Init(BulbGrid grid)
 {
     _grid = grid;
     _selectionController = ApplicationController.Instance.SelectionController;
 }