private void TowerFunc(GameObject gO) //tower upgrade menu button functionality { switch (gO.name) { case "Destroy Tower": if (TowerBehaviour.LastTowerSelected != null) { Destroy(TowerBehaviour.LastTowerSelected); GameManagerStuff.TowersBuilt--; } else { GameManager.PushToEventLog("No Tower Selected"); } break; case "Armour Piercing": if (TowerBehaviour.LastTowerSelected != null) { if (GameManager.CanAfford(TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost)) { if (TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().armourpiercingpc <= 90) { TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().armourpiercingpc += 10; GameManagerStuff.Currency -= TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost; TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost += 10; } else { GameManager.PushToEventLog("Armour piercing at 100%"); } } else { GameManager.GetComponent <GameManagerStuff>().NotEnoughGold(); } } else { GameManager.PushToEventLog("No Tower Selected"); } break; case "Kill Bonus": if (TowerBehaviour.LastTowerSelected != null) { if (GameManager.CanAfford(TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost)) { TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().BonusGold += 3; GameManagerStuff.Currency -= TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost; TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost += 10; } else { GameManager.GetComponent <GameManagerStuff>().NotEnoughGold(); } } else { GameManager.PushToEventLog("No Tower Selected"); } break; case "Attack Range": if (TowerBehaviour.LastTowerSelected != null) { if (GameManager.CanAfford(TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost)) { TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Range += 10; GameManagerStuff.Currency -= TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost; TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost += 10; } else { GameManager.GetComponent <GameManagerStuff>().NotEnoughGold(); } } else { GameManager.PushToEventLog("No Tower Selected"); } break; case "Projectile Speed": if (TowerBehaviour.LastTowerSelected != null) { if (GameManager.CanAfford(TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost)) { if (TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().ProjectileSpeed < 9) { TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().ProjectileSpeed += 1; GameManagerStuff.Currency -= TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost; TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost += 10; } else { GameManager.PushToEventLog("Projectile Speed At Max"); } } else { GameManager.GetComponent <GameManagerStuff>().NotEnoughGold(); } } else { GameManager.PushToEventLog("No Tower Selected"); } break; case "Accuracy": if (TowerBehaviour.LastTowerSelected != null) { if (GameManager.CanAfford(TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost)) { TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Accuracy += 0.01f; GameManagerStuff.Currency -= TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost; TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost += 10; } else { GameManager.GetComponent <GameManagerStuff>().NotEnoughGold(); } } else { GameManager.PushToEventLog("No Tower Selected"); } break; case "Damage": if (TowerBehaviour.LastTowerSelected != null) { if (GameManager.CanAfford(TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost)) { TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Damage -= 0.5f; GameManagerStuff.Currency -= TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost; TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost += 10; } else { GameManager.GetComponent <GameManagerStuff>().NotEnoughGold(); } } else { GameManager.PushToEventLog("No Tower Selected"); } break; case "Attack Speed": if (TowerBehaviour.LastTowerSelected != null) { if (GameManager.CanAfford(TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost)) { if (TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().FireRate > 0.01f) { TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().FireRate = (TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().FireRate / 10) * 9; GameManagerStuff.Currency -= TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost; TowerBehaviour.LastTowerSelected.GetComponent <TowerBehaviour>().Cost += 10; } else { GameManager.PushToEventLog("Attack Speed At Max"); } } else { GameManager.GetComponent <GameManagerStuff>().NotEnoughGold(); } } else { GameManager.PushToEventLog("No Tower Selected"); } break; } }