Example #1
0
        private void CancelBuilding()
        {
            if (_currentHeldTowerButton != null)
            {
                _currentHeldTowerButton.SetButtonInactive();
            }

            if (CurrentHeldTower != null && !CurrentHeldTower.IsPlaced)
            {
                CurrentHeldTower.gameObject.SetActive(false);
            }

            GameManager.Instance.UIManager.TowerInfoPanel.DisableTowerInfoPopup();
            GameManager.Instance.TowerSelectionManager.DeselectTower();

            _currentHeldTowerButton = null;
            _currentTile            = null;
            _towerHoldState         = TowerHoldState.None;
            IsBuilding = false;
        }
Example #2
0
        private void Update()
        {
            if (CurrentHeldTower == null)
            {
                IsBuilding = false;
            }

            if (!IsBuilding)
            {
                return;
            }

            if (!EventSystem.current.IsPointerOverGameObject())
            {
                _towerHoldState = ObtainTowerHoldState();

                if (_currentTile != null)
                {
                    UpdateVisualEffects();
                }
            }

            if (Input.GetKeyDown(KeyCode.Mouse1))
            {
                CancelBuilding();
                GameManager.Instance.UIManager.CursorHandler.SwitchCursor(Cursors.Standard);
                return;
            }

            if (Input.GetKeyDown(KeyCode.Mouse0) &&
                _currentTile != null &&
                !EventSystem.current.IsPointerOverGameObject())
            {
                if (PlayerHasGold(CurrentHeldTower) && TileIsBuildslot(_currentTile))
                {
                    BuildTower(_currentTile);
                    GameManager.Instance.UIManager.CursorHandler.SwitchCursor(Cursors.Standard);
                    GameManager.Instance.TowerSelectionManager.DeselectTower();
                }
            }
        }