コード例 #1
0
        private void BuildTower(Tile tile)
        {
            if (GameManager.Instance.Player.BuyTower(CurrentHeldTower))
            {
                if (tile.PlacedTower != null)
                {
                    CurrentHeldTower.GiveXP(tile.PlacedTower.Xp);
                    SellTower(tile.PlacedTower);
                }

                BuiltTowers.Add(CurrentHeldTower);

                SetTowerModelTransparency(1.0f);
                ResetTowerModelColor();
                tile.IsEmpty     = false;
                tile.PlacedTower = CurrentHeldTower;

                _currentHeldTowerButton.SetButtonInactive();
                GameManager.Instance.UIManager.BuildPanel.RemoveBuildButton(_currentHeldTowerButton, true);
                _currentHeldTowerButton = null;

                CurrentHeldTower.gameObject.transform.parent = PlacedTowersContainer.transform;
                CurrentHeldTower.IsPlaced = true;
                CurrentHeldTower.Tile     = tile;
                CurrentHeldTower.gameObject.SetActive(true);

                GameManager.Instance.Player.RemoveBuildableTower(CurrentHeldTower);
                IsBuilding = false;
            }
            else
            {
                CancelBuilding();
            }
        }
コード例 #2
0
    public void BuildTower(TowerBuildButton towerPrefabHolder)
    {
        int towerCost = towerPrefabHolder.towerPrefab.GetComponent <Tower>().cost;

        Controller.Instance.Money -= towerCost;
        SelectedPoint.Selected     = false; // Do not move
        StartCoroutine(TowerBuilding(towerPrefabHolder.towerPrefab, SelectedPoint));
        SelectedPoint = null;
    }
コード例 #3
0
 private void Start()
 {
     for (int i = 0; i < GameManager.Instance.mapManager.currentMap.AvailableTowers.Length; i++)
     {
         GameObject towerButton = Instantiate(towerButtonPrefab);
         towerButton.transform.SetParent(panel, false);
         TowerBuildButton buildButton = towerButton.GetComponent <TowerBuildButton>();
         buildButton.InitializeButton(GameManager.Instance.mapManager.currentMap.AvailableTowers[i]);
     }
 }
コード例 #4
0
        public void StartBuilding(TowerBuildButton button)
        {
            CancelBuilding();

            IsBuilding = true;
            GameManager.Instance.TowerSelectionManager.SelectTower(button.Tower);

            _currentHeldTowerButton = button;
            _currentHeldTowerButton.SetButtonActive();

            CurrentHeldTower.gameObject.SetActive(true);

            SetTowerModelTransparency(0.25f);
        }
コード例 #5
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;
        }