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; }
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(); } } }