Пример #1
0
        public void upgrade(int upgradeIndex, Turret turret, bool playerTurret)
        {
            if (upgradeIndex == 0)
            {
                TowerUpgrade upgrade = leftPath[leftIndex];
                if (playerTurret)
                {
                    if (pm.getMoney() >= upgrade.cost)
                    {
                        pm.changeMoney(-upgrade.cost);

                        leftIndex++;
                        upgrade.activate(turret);
                    }
                }
                else
                {
                    if (em.getMoney() >= upgrade.cost)
                    {
                        em.changeMoney(-upgrade.cost);
                        leftIndex++;
                        upgrade.activate(turret);
                    }
                }
            }
            else
            {
                TowerUpgrade upgrade = rightPath[rightIndex];
                if (playerTurret)
                {
                    if (pm.getMoney() >= upgrade.cost)
                    {
                        pm.changeMoney(-upgrade.cost);
                        rightIndex++;
                        upgrade.activate(turret);
                    }
                }
                else
                {
                    if (em.getMoney() >= upgrade.cost)
                    {
                        em.changeMoney(-upgrade.cost);
                        rightIndex++;
                        upgrade.activate(turret);
                    }
                }
            }
        }
Пример #2
0
        public void buildTurret(TurretBlueprint blueprint)
        {
            GameObject turret = (GameObject)Instantiate(blueprint.prefab, getBuildPosition(), Quaternion.identity);

            this.turret = turret;

            GameObject effect = (GameObject)Instantiate(blueprint.buildEffect, getBuildPosition(), Quaternion.identity);

            Destroy(effect, 5f);

            this.turretBlueprint = blueprint;
            em.changeMoney(-turretBlueprint.cost);
        }
Пример #3
0
        protected void die()
        {
            if (minionType == MinionType.Divide)
            {
                GameObject min1 = (GameObject)Instantiate(meleePrefab, this.transform.position + this.transform.forward, this.transform.rotation);
                min1.GetComponent <MinionMovement>().waypoints = this.getMinionMovement().waypoints;
                min1.GetComponent <MinionMovement>().setWaypointIndex(this.getMinionMovement().getWaypointIndex());
                GameObject min2 = (GameObject)Instantiate(meleePrefab, this.transform.position - this.transform.forward, this.transform.rotation);
                min2.GetComponent <MinionMovement>().waypoints = this.getMinionMovement().waypoints;
                min2.GetComponent <MinionMovement>().setWaypointIndex(this.getMinionMovement().getWaypointIndex());
            }
            try {
                em.changeMoney(moneyValue);
            } catch (System.Exception e) {
                Debug.LogError("Couldn't give money to enemy: " + em + " " + moneyValue);
            }

            GameObject effect = (GameObject)Instantiate(deathEffect, transform.position, Quaternion.identity);

            Destroy(effect, 5f);
            Destroy(gameObject);
        }