public void UpgradeTower()
    {
        // finds the selected object
        objectToUpgrade = GameObject.FindGameObjectWithTag("Selected");
        if (objectToUpgrade != null)
        {
            // gets the towerManagement script
            towerManagement = objectToUpgrade.GetComponent <TowerManagement> ();
            // gets the tower that the object upgrades to
            towerUpgrade = towerManagement.upgradedTower;
            // gets the towerStats script of the upgraded tower
            if (towerUpgrade != null)
            {
                upgradeTowerStats = towerUpgrade.GetComponent <TowerStats> ();
            }
            else
            {
                return;
            }

            scoreManager = GameObject.FindObjectOfType <ScoreManager> ();


            if (scoreManager.money >= upgradeTowerStats.price && objectToUpgrade != null && towerUpgrade != null)
            {
                scoreManager.money -= upgradeTowerStats.price;
                Vector3    postion  = objectToUpgrade.transform.position;
                Quaternion rotation = objectToUpgrade.transform.rotation;

                Instantiate(towerUpgrade, postion, rotation);
                Destroy(objectToUpgrade);
            }
        }
    }
示例#2
0
    // Use this for initialization
    protected void Start()
    {
        CurrentPower            = MaxPower;
        b_isPowerDraining       = false;
        currentAction           = E_Action.IDLE;
        m_destinationCheckpoint = null;
        manager = GameManager.GetInstance();

        //register Events
        GameManager.GetInstance().PauseEvent.AddListener(OnPause);

        //define agent
        agent = GetComponent <NavMeshAgent>();

        //get enemy tower object
        foreach (GameObject tower in GameManager.GetInstance().Towers)
        {
            TowerManagement man = tower.GetComponent <TowerManagement>();
            if (man != null)
            {
                if (man.Team != Team)
                {
                    m_enemyTower = tower;
                }
                else
                {
                    m_teamTower = tower;
                }
            }
        }
        //define node AI
        DefineNode();
        m_communicator = m_teamTower.GetComponent <Communicator>();
    }
 private void Awake()
 {
     if (instance != null && instance != this)
     {
         Destroy(this.gameObject);
     }
     else
     {
         instance = this;
     }
 }