예제 #1
0
    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;
        }
    }