public void UpgradeButtonSelected() { if (!_enoughGold) { _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); _buildCheckPanel.DisAppear(); _towerInfoPanel.ResetTextColor(); return; } if (_destroy) { _notificationPanel.SetNotificationType("UpgradeWhenDestroied"); _notificationPanel.Appear(); _buildCheckPanel.DisAppear(); _towerInfoPanel.ResetTextColor(); return; } _tileEventHandler.SetOperation(6); _bcpYes.SetUpgradeCase(); _buildCheckPanel.Appear(); _towerInfoPanel.SetUpgradingColor(); _towerInfoPanel.DisplayUpgradedInfo(); _towerInfoPanel.Appear(); _notificationPanel.SetNotificationType("Upgrade"); _notificationPanel.Appear(); }
public void RepairButtonSelected() { if (!_enoughGold) { _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); _buildCheckPanel.DisAppear(); return; } if (_fullHp) { _notificationPanel.SetNotificationType("RepairWithFullHp"); _notificationPanel.Appear(); _buildCheckPanel.DisAppear(); _towerInfoPanel.SetOriginalowerInfo(); _towerInfoPanel.ResetTextColor(); return; } _tileEventHandler.SetOperation(7); _buildCheckPanel.Appear(); _towerInfoPanel.RepairCase(); _towerInfoPanel.ResetTextColor(); _towerInfoPanel.SetOriginalowerInfo(); _towerInfoPanel.Appear(); _notificationPanel.SetNotificationType("Repair"); _notificationPanel.Appear(); }
// confirm TileEventHandler operations public void OperationConfirmed() { _towerBuildPanel.DisAppear(); if (_upgradeCase) { if (!EnoughGoldToUpgrade()) // not enough gold to upgrade { _notificationPanel.DisAppear(); _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); _buildCheckPanel.DisAppear(); } else { _tileEventHandler.OperationConfirmed(); } } else { _tileEventHandler.OperationConfirmed(); _buildCheckPanel.DisAppear(); _towerInfoPanel.DisAppear(); _towerOperationPanel.DisAppear(); _notificationPanel.DisAppear(); _gameBoard.ClearHighlightTiles(); } }
public void SellButtonSelected() { //Debug.Log("SB: Sell button clicked"); _tileEventHandler.SetOperation(8); _buildCheckPanel.Appear(); _towerInfoPanel.ResetTextColor(); _towerInfoPanel.ResetRepairCase(); _towerInfoPanel.SetOriginalowerInfo(); _towerInfoPanel.Appear(); _notificationPanel.SetNotificationType("Sell"); _notificationPanel.Appear(); }
public void TankTowerSelected() { _gameBoard.ClearHighlightTiles(); _tileEventHandler.SelectTowerType(0); _tileEventHandler.SetOperation(1); int[] towerInfo = new int[11]; int range = _towerController.CheckTowerInfo(0, towerInfo); //Debug.Log("Range is " + range + " " + _tileEventHandler.GridX + " " + _tileEventHandler.GridY); _tileEventHandler.DisplayAttackRange(range); _buildCheckPanel.Appear(); _towerInfoPanel.SetTowerInfo(towerInfo); _towerInfoPanel.Appear(); _notificationPanel.SetNotificationType("Tank"); _notificationPanel.Appear(); }
void Update() { // disappear all panels when fousing to enter a batte during building OR operation tower phase if (!_clearBeforeBattle && _levelManager.CurrentGamePhase() == GameBoard.GamePhase.BattlePhase) { _towerBuildPanel.DisAppear(); _towerOperationPanel.DisAppear(); _towerInfoPanel.DisAppear(); _buildCheckPanel.DisAppear(); _notificationPanel.DisAppear(); _gameBoard.ClearHighlightTiles(); _clearBeforeBattle = true; return; } // make the above code work for the entire game if (_levelManager.CurrentGamePhase() == GameBoard.GamePhase.BuildingPhase) { _clearBeforeBattle = false; } if (_confirmed) { switch (TowerOperation) { case Operation.Nop: break; case Operation.TankTower: // ask tower controller to build(check avaliable gold) _towerGameObject = _towerController.BuildTower(this, GridX, GridY, _towerIndex); if (null == _towerGameObject) { //Debug.Log("TEH: not enough money or blocking the path"); } else { _towerExist = true; _currentTowerType = 0; _tankTowerPtr = _towerGameObject.GetComponent <TankTower>(); // get scripts _tankTowerPtr.Setup(this); // check if it blocks the last path if (!_gameBoard.BuildTower(_tankTowerPtr)) { SellTower(true); _towerExist = false; _notificationPanel.SetNotificationType("Block"); _notificationPanel.Appear(); } else { _levelManager.UseGold(_tankTowerPtr.BuildCost); _towerController.AddTileEventHandler(this); } } break; case Operation.RangeTower: // ask tower controller to build(check avaliable gold) _towerGameObject = _towerController.BuildTower(this, GridX, GridY, _towerIndex); if (null == _towerGameObject) { //Debug.Log("TEH: not enough money or blocking the path"); } else { _towerExist = true; _currentTowerType = 1; _rangeTowerPtr = _towerGameObject.GetComponent <RangeTower>(); // get scripts _rangeTowerPtr.Setup(this); // check if it blocks the last path if (!_gameBoard.BuildTower(_rangeTowerPtr)) { SellTower(true); _towerExist = false; _notificationPanel.SetNotificationType("Block"); _notificationPanel.Appear(); } else { _levelManager.UseGold(_rangeTowerPtr.BuildCost); _towerController.AddTileEventHandler(this); } } break; case Operation.SlowTower: // ask tower controller to build(check avaliable gold) _towerGameObject = _towerController.BuildTower(this, GridX, GridY, _towerIndex); if (null == _towerGameObject) { //Debug.Log("TEH: not enough money or blocking the path"); } else { _towerExist = true; _currentTowerType = 2; _slowTowerPtr = _towerGameObject.GetComponent <SlowTower>(); // get scripts _slowTowerPtr.Setup(this); // check if it blocks the last path if (!_gameBoard.BuildTower(_slowTowerPtr)) { SellTower(true); _towerExist = false; _notificationPanel.SetNotificationType("Block"); _notificationPanel.Appear(); } else { _levelManager.UseGold(_slowTowerPtr.BuildCost); _towerController.AddTileEventHandler(this); } } break; case Operation.HealTower: // ask tower controller to build(check avaliable gold) _towerGameObject = _towerController.BuildTower(this, GridX, GridY, _towerIndex); if (null == _towerGameObject) { //Debug.Log("TEH: not enough money or blocking the path"); } else { _towerExist = true; _currentTowerType = 3; _healTowerPtr = _towerGameObject.GetComponent <HealTower>(); // get scripts _healTowerPtr.Setup(this); // check if it blocks the last path if (!_gameBoard.BuildTower(_healTowerPtr)) { SellTower(true); _towerExist = false; //_notificationPanel.DisAppear(); _notificationPanel.SetNotificationType("Block"); _notificationPanel.Appear(); } else { _levelManager.UseGold(_healTowerPtr.BuildCost); _towerController.AddTileEventHandler(this); _towerController.AddHealTileEventHandler(this); } } break; case Operation.GoldTower: // ask tower controller to build(check avaliable gold) _towerGameObject = _towerController.BuildTower(this, GridX, GridY, _towerIndex); if (null == _towerGameObject) { //Debug.Log("TEH: not enough money or blocking the path"); } else { _towerExist = true; _currentTowerType = 4; _goldTowerPtr = _towerGameObject.GetComponent <GoldTower>(); // get scripts _goldTowerPtr.Setup(this); // check if it blocks the last path if (!_gameBoard.BuildTower(_goldTowerPtr)) { SellTower(true); _towerExist = false; _notificationPanel.SetNotificationType("Block"); _notificationPanel.Appear(); } else { _levelManager.UseGold(_goldTowerPtr.BuildCost); _towerController.AddTileEventHandler(this); } } break; case Operation.Upgrade: if (0 == _currentTowerType) { _tankTowerPtr.Upgrade(); } if (1 == _currentTowerType) { _rangeTowerPtr.Upgrade(); } if (2 == _currentTowerType) { _slowTowerPtr.Upgrade(); } if (3 == _currentTowerType) { _healTowerPtr.Upgrade(); } if (4 == _currentTowerType) { _goldTowerPtr.Upgrade(); } break; case Operation.Repair: if (0 == _currentTowerType) { if (_tankTowerPtr.RepairCost > _levelManager.GetGold()) { _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); break; } _tankTowerPtr.Repair(); } if (1 == _currentTowerType) { if (_rangeTowerPtr.RepairCost > _levelManager.GetGold()) { _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); break; } _rangeTowerPtr.Repair(); } if (2 == _currentTowerType) { if (_slowTowerPtr.RepairCost > _levelManager.GetGold()) { _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); break; } _slowTowerPtr.Repair(); } if (3 == _currentTowerType) { if (_healTowerPtr.RepairCost > _levelManager.GetGold()) { _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); break; } _healTowerPtr.Repair(); } if (4 == _currentTowerType) { if (_goldTowerPtr.RepairCost > _levelManager.GetGold()) { _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); break; } _goldTowerPtr.Repair(); } break; case Operation.Sell: SellTower(false); break; } _confirmed = false; } }
public GameObject BuildTower(TileEventHandler teh, int x, int y, int index) { Vector3 gamePosition = _gameBoard.BoardTiles[x, y].TileObject.transform.position; _towerGameObject = Instantiate(Towers[index], gamePosition, Quaternion.identity) as GameObject; switch (index) { case 0: _tankTowerPtr = _towerGameObject.GetComponent <TankTower>(); // get scripts if (_tankTowerPtr.BuildCost > _levelManager.GetGold()) { //Debug.Log("TC: Not enough gold to build"); _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); Destroy(_towerGameObject); return(null); } break; case 1: _rangeTowerPtr = _towerGameObject.GetComponent <RangeTower>(); // get scripts if (_rangeTowerPtr.BuildCost > _levelManager.GetGold()) { //Debug.Log("TC: Not enough gold to build"); _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); Destroy(_towerGameObject); return(null); } break; case 2: _slowTowerPtr = _towerGameObject.GetComponent <SlowTower>(); // get scripts if (_slowTowerPtr.BuildCost > _levelManager.GetGold()) { //Debug.Log("TC: Not enough gold to build"); _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); Destroy(_towerGameObject); return(null); } break; case 3: _healTowerPtr = _towerGameObject.GetComponent <HealTower>(); // get scripts if (_healTowerPtr.BuildCost > _levelManager.GetGold()) { //Debug.Log("TC: Not enough gold to build"); _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); Destroy(_towerGameObject); return(null); } break; case 4: _goldTowerPtr = _towerGameObject.GetComponent <GoldTower>(); // get scripts if (_goldTowerPtr.BuildCost > _levelManager.GetGold()) { //Debug.Log("TC: Not enough gold to build"); _notificationPanel.SetNotificationType("NotEnoughMoney"); _notificationPanel.Appear(); Destroy(_towerGameObject); return(null); } break; // TODO~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } //Debug.Log("TC: Tower object created"); return(_towerGameObject); }