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++; }
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; }
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!"); }
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; }
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!"); }