Exemplo n.º 1
0
        public void OnEvent(EventTypesEnum eventTypeEnum, object messageData)
        {
            switch (eventTypeEnum)
            {
            case EventTypesEnum.UI_SceneLoaded:
                if (_loadingImage == null)
                {
                    throw new UnityException("Loading image is " + _loadingImage);
                }
                else
                {
                    _loadingImage.SetActive(false);
                }
                break;

            case EventTypesEnum.UI_OpenMenu:
                if (_navigationManager == null)
                {
                    throw new UnityException("Navigation Manager is" + _navigationManager);
                }
                else
                {
                    _loadingImage.SetActive(true);
                    _navigationManager.Navigate(SceneTypesEnum.StartScreenScene, SceneTypesEnum.Menu, null);
                }
                break;
            }
        }
Exemplo n.º 2
0
 public void Notify(EventTypesEnum eventTypeEnumEnum, Object messageData)
 {
     foreach (var subscriber in _subscribersList)
     {
         subscriber.OnEvent(eventTypeEnumEnum, messageData);
     }
 }
Exemplo n.º 3
0
        public void OnEvent(EventTypesEnum eventTypeEnum, Object messageData)
        {
            switch (eventTypeEnum)
            {
            case EventTypesEnum.UI_SceneLoaded:
                _levelCompletePanel.SetActive(false);
                _loadingImage.SetActive(false);
                break;

            case EventTypesEnum.UI_OpenMenu:
                _loadingImage.SetActive(true);
                _navigationManager.Navigate(SceneTypesEnum.GameplayLevel, SceneTypesEnum.Menu, null);
                break;

            case EventTypesEnum.UI_PlayLevel:
                _loadingImage.SetActive(true);

                for (int i = 0; i < _level.LevelTasks.Length; i++)
                {
                    _level.LevelTasks[i].Count = _tasksMaxCount[_level.LevelTasks[i].ElementName];
                }

                _navigationManager.Navigate(SceneTypesEnum.GameplayLevel, SceneTypesEnum.GameplayLevel, _level);
                break;

            case EventTypesEnum.CELL_Destroy:
                string elementName = (string)messageData;
                if (_tasksPanel.ContainsKey(elementName))
                {
                    var taskCount = _task[elementName];
                    var maxCount  = _tasksMaxCount[elementName];

                    GameObject taskPanel = _tasksPanel[elementName];

                    Text countTask = taskPanel.GetComponentInChildren <Text>();
                    countTask.text = (maxCount - _level.LevelTasks[taskCount].Count).ToString() + " / " +
                                     maxCount.ToString();
                }

                break;

            case EventTypesEnum.TASK_Finished:
                _levelCompletePanel.SetActive(true);

                for (int i = 0; i < _level.LevelTasks.Length; i++)
                {
                    _level.LevelTasks[i].Count = _tasksMaxCount[_level.LevelTasks[i].ElementName];
                }

                Debug.Log("FIHISHED");
                break;
            }
        }
Exemplo n.º 4
0
        public void OnEvent(EventTypesEnum eventTypeEnum, object messageData)
        {
            switch (eventTypeEnum)
            {
            case EventTypesEnum.CELL_Destroy:
                string destroyedCellTag = (string)messageData;

                foreach (var levelTask in _levelTasks)
                {
                    if (levelTask.ElementName == destroyedCellTag)
                    {
                        levelTask.Count -= 1;
                        if (levelTask.Count == 0)
                        {
                            OnEvent(EventTypesEnum.TASK_ComplitedTask, null);
                        }
                        return;
                    }
                }

                break;

            case EventTypesEnum.TASK_ComplitedTask:

                foreach (var levelTask in _levelTasks)
                {
                    if (levelTask.Completed == false)
                    {
                        return;
                    }
                }

                Notify(EventTypesEnum.TASK_Finished, this);
                break;

            default:
                break;
            }
        }
Exemplo n.º 5
0
 public void Notify(EventTypesEnum eventTypeEnum, Object messageData)
 {
     _notifier.Notify(eventTypeEnum, messageData);
 }
        public void OnEvent(EventTypesEnum eventTypeEnum, object messageData)
        {
            switch (eventTypeEnum)
            {
            case EventTypesEnum.LMB_Down:
                _clickA = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                break;

            case EventTypesEnum.LMB_Up:
                _clickB = Camera.main.ScreenToWorldPoint(Input.mousePosition);

                if (_gameStateEnum == GameStatesEnum.Ready)
                {
                    if (_clickA.x >= 0 && _clickA.x < _board.Width && _clickA.y >= 0 && _clickA.y < _board.Height &&
                        (Mathf.Abs(_clickB.x - _clickA.x) > Strings.SWIPE_SENSITIVITY ||
                         Mathf.Abs(_clickB.y - _clickA.y) > Strings.SWIPE_SENSITIVITY))
                    {
                        MoveDirectionTypesEnum swipeDirection = Helper.FindMoveDirection(_clickA, _clickB);
                        SwipeCells(swipeDirection);
                    }
                }

                break;

            case EventTypesEnum.Swipe:
                _gameStateEnum = GameStatesEnum.Wait;

                SetMacroCommand((ICommand[])messageData);
                ExecuteMacroCommand();
                break;

            case EventTypesEnum.BOARD_collapse:
                ExecuteMacroCommand();
                break;

            case EventTypesEnum.BOARD_EndDestroyMatchedCells:
                if (_powersDictionary.Count > 0)
                {
                    Vector2          pos             = _powersDictionary.First().Key;
                    PowerUpTypesEnum powerUpTypeEnum = _powersDictionary.First().Value;

                    List <ICell> cellsList = new List <ICell>(_checkManager.PowerCheck(powerUpTypeEnum, pos));
                    ICell        cell      = _board.Cells[(int)pos.x, (int)pos.y];

                    _matchedCellsDictionary.Add(cellsList, AxisTypesEnum.Undefined);
                    _matchedCellsWithAxisDictionary.Add(cell, _matchedCellsDictionary);

                    _powersDictionary.Remove(_powersDictionary.First());

                    StartCoroutine(MarkAndDestroy(_matchedCellsWithAxisDictionary));
                }
                else
                {
                    StartCoroutine(RefillBoard());
                }

                break;

            case EventTypesEnum.CELL_EndMove:
                TryCheckSwipedCells((ICell)messageData);
                break;

            case EventTypesEnum.CELL_EndMoveBack:
                ICell cellBack = (ICell)messageData;

                _board.Cells[cellBack.TargetX, cellBack.TargetY] = cellBack;
                cellBack.CellStateEnum = CellStatesEnum.Wait;

                _gameStateEnum = GameStatesEnum.Ready;
                break;

            case EventTypesEnum.CELL_Fall:
                ICell cellFall = (ICell)messageData;

                cellFall.CellStateEnum = CellStatesEnum.Wait;

                if (cellFall == _lastFallCell)
                {
                    CheckBoard();
                }
                break;

            case EventTypesEnum.CELL_Destroy:
                string cellTag = (string)messageData;
                Notify(EventTypesEnum.CELL_Destroy, cellTag);
                break;

            case EventTypesEnum.POWER_Use:
                ArrayList arr = (ArrayList)messageData;

                PowerUpTypesEnum powerUp  = Helper.StringToPowerType(arr[0].ToString());
                Vector3          position = (Vector3)arr[1];

                _powersDictionary.Add(position, powerUp);
                break;

            case EventTypesEnum.TASK_Finished:
                if (_gameStateEnum != GameStatesEnum.End)
                {
                    _navigationManager.MasterManager.UpdateManager.IsUpdate = false;
                    _gameStateEnum = GameStatesEnum.End;
                    Notify(EventTypesEnum.TASK_Finished, null);
                }
                break;

            default:
                Debug.Log("EVENT NOT FOUND");
                break;
            }
        }
Exemplo n.º 7
0
        public void OnEvent(EventTypesEnum eventTypeEnum, Object messageData)
        {
            switch (eventTypeEnum)
            {
            case EventTypesEnum.UI_SceneLoaded:
                _gameObjectDescription_PanelLevels.SetActive(false);
                _loadingImage.SetActive(false);
                break;

            case EventTypesEnum.UI_BackToStartScreen:
                if (_navigationManager == null)
                {
                    throw new UnityException("Navigation Manager is" + _navigationManager);
                }
                else
                {
                    _navigationManager.Navigate(SceneTypesEnum.Menu, SceneTypesEnum.StartScreenScene, null);
                }
                break;

            case EventTypesEnum.UI_PrevLocation:
                Debug.Log("go to Previous location");
                break;

            case EventTypesEnum.UI_NextLocation:
                Debug.Log("go to Next location");
                break;

            case EventTypesEnum.UI_OpenLevelDescription:
                _selectedLevel = (int)messageData;

                if (_selectedLevel > _levelsManager.Levels.Length - 1)
                {
                    Debug.Log("Level not created");
                    return;
                }
                else
                {
                    ILevel level = _levelsManager.Levels[_selectedLevel];

                    _gameObjectDescription_PanelLevels.SetActive(true);

                    GameObject tasksHolderPanel = GameObject.Find("Panel Tasks Holder");

                    Text currentGameObjectText = GameObject.Find("Text Selected Level").GetComponent <Text>();
                    currentGameObjectText.text = "Level " + level.LevelId.ToString();

                    int tastsCount = level.LevelTasks.Length;

                    for (int i = 0; i < tastsCount; i++)
                    {
                        GameObject taskPrefab =
                            UnityEngine.Object.Instantiate(
                                Resources.Load("Prefabs/UI/Panel Level Task") as GameObject);

                        taskPrefab.transform.SetParent(tasksHolderPanel.transform);

                        Vector2 tempPos = Helper.SetUITaskPosition(tastsCount, i, SceneTypesEnum.Menu);
                        taskPrefab.transform.localPosition = tempPos;

                        Text countTask = taskPrefab.GetComponentInChildren <Text>();
                        countTask.text = level.LevelTasks[i].Count.ToString();

                        Image taskSprite = taskPrefab.GetComponentsInChildren <Image>()[2];
                        taskSprite.sprite = level.LevelTasks[i].SpriteElement;
                    }
                }

                break;

            case EventTypesEnum.UI_CLoseLevelDescription:
                GameObject[] levelTaskPanels = GameObject.FindGameObjectsWithTag("Level Task");

                foreach (var levelTaskPanel in levelTaskPanels)
                {
                    GameObject.Destroy(levelTaskPanel);
                }

                _selectedLevel = -1;
                _gameObjectDescription_PanelLevels.SetActive(false);
                Debug.Log("Close Description of Level");
                break;

            case EventTypesEnum.UI_PlayLevel:
                ILevel selectedLevel = _levelsManager.Levels[_selectedLevel];

                _loadingImage.SetActive(true);
                _navigationManager.Navigate(SceneTypesEnum.Menu, SceneTypesEnum.GameplayLevel, selectedLevel);
                break;
            }
        }