Esempio n. 1
0
    IEnumerator SpawnWave()
    {
        waveNumber++;

        EnemyWave[] wave = territory.waves[waveNumber - 1];

        EnemiesAlive = 0;

        for (int i = 0; i < wave.Length; i++)
        {
            if (wave[i].type != Attacker.Type.None)
            {
                EnemiesAlive += wave[i].count;
            }
        }
        string s = string.Format("Wave {0} ({1} enemies)", waveNumber, EnemiesAlive);

        //Debug.Log(s);
        GameToast.Add(s);
        for (int i = 0; i < wave.Length; i++)
        {
            for (int j = 0; j < wave[i].count; j++)
            {
                SpawnAttackerType(wave[i].type);
                float delay = wave[i].delay > 0 ? wave[i].delay : 1f / wave[i].rate;
                yield return(new WaitForSeconds(delay));
            }
        }
        //waveIndex++;
    }
Esempio n. 2
0
    public void RepairTurret()
    {
        if (turret == null)
        {
            return;
        }
        int cost = RepairCost();

        if (BattleManager.instance.stats.Money < cost)
        {
            GameToast.Add("Not enough money to repair that!");
            return;
        }
        Turret t = turret.GetComponent <Turret>();

        t.health = t.startHealth;
        BattleManager.instance.stats.Money -= cost;
        RepairCooldown = Time.time + 5f;
    }
Esempio n. 3
0
    public void SellTurret()
    {
        if (turret == null)
        {
            return;
        }
        BattleManager.instance.stats.Money += turretBlueprint.GetSellAmount();
        GameObject effects = GameObject.Find("Effects");

        if (!effects)
        {
            effects = new GameObject("Effects");
        }
        GameObject effect = Instantiate(buildManager.sellEffect, GetBuildPosition(), Quaternion.identity, effects.transform);

        Destroy(effect, 5f);
        Destroy(turret);
        turretBlueprint = null;
        GameToast.Add("Turret sold!");
    }
Esempio n. 4
0
    public void BuildTurret(TurretBlueprint blueprint)
    {
        if (BattleManager.instance.stats.Money < blueprint.cost)
        {
            GameToast.Add("Not enough money to build that!");
            return;
        }
        BattleManager.instance.stats.Money -= blueprint.cost;
        GameObject _turret = Instantiate(blueprint.prefab, GetBuildPosition(), Quaternion.identity);

        Turret t = _turret.GetComponent <Turret>();

        t.node = gameObject;

        turret          = _turret;
        turretBlueprint = blueprint;
        GameObject effects = GameObject.Find("Effects");

        if (!effects)
        {
            effects = new GameObject("Effects");
        }
        if (!buildManager)
        {
            //Debug.Log("buildmanager is null");
            buildManager = BGBuildManager.instance;
        }
        if (!buildManager)
        {
            Debug.Log("buildmanager is still null");
        }
        GameObject effect = Instantiate(buildManager.buildEffect, GetBuildPosition(), Quaternion.identity, effects.transform);

        Destroy(effect, 5f);
        GameToast.Add("Turret Built!");
        isUpgraded = false;
    }
Esempio n. 5
0
    public void UpgradeTurret()
    {
        if (turret == null)
        {
            return;
        }
        if (BattleManager.instance.stats.Money < turretBlueprint.upgradeCost)
        {
            GameToast.Add("Not enough money to upgrade that!");
            return;
        }
        BattleManager.instance.stats.Money -= turretBlueprint.upgradeCost;
        Vector3 oldrotation = new Vector3(turret.transform.eulerAngles.x, turret.transform.eulerAngles.x, turret.transform.eulerAngles.z);

        Destroy(turret);
        GameObject _turret = Instantiate(turretBlueprint.upgradedPrefab, GetBuildPosition(), Quaternion.identity);

        turret = _turret;

        Turret t = _turret.GetComponent <Turret>();

        t.node = gameObject;

        turret.transform.eulerAngles = oldrotation;
        GameObject effects = GameObject.Find("Effects");

        if (!effects)
        {
            effects = new GameObject("Effects");
        }
        GameObject effect = Instantiate(buildManager.buildEffect, GetBuildPosition(), Quaternion.identity, effects.transform);

        Destroy(effect, 5f);
        isUpgraded = true;
        GameToast.Add("Turret upgraded!");
    }