void Start() { // Difficulty & mutators modifiers float _dF = GameObject.Find("GameManager").GetComponent<GameManager>().GetDifficultyFactor(); actor.SetMaxHealth(actor.GetMaxHealth() * _dF); damage *= _dF; // Wave progress modifiers int _wave = GameObject.Find("GameManager").GetComponent<GameManager>().GetWaveCurrent(); if ( _wave > 19 ) { actor.SetMaxHealth(actor.GetMaxHealth() * 2.5f); damage *= 2.0f; } else if ( _wave > 14 ) { actor.SetMaxHealth(actor.GetMaxHealth() * 2.0f); damage *= 1.5f; } else if ( _wave > 9 ) { actor.SetMaxHealth(actor.GetMaxHealth() * 1.5f); damage *= 1.5f; } else if ( _wave > 4 ) { actor.SetMaxHealth(actor.GetMaxHealth() * 1.5f); } evade = transform.parent.GetComponent<EvadeUnit>(); seek = transform.parent.GetComponent<SeekUnit>(); source = transform.root.GetComponentInChildren<AudioSource>(); sounds = PlayerPrefs.GetInt("sounds", 1) == 1; for ( int i = 0; i < barrels; ++i ) { guns.Add(transform.GetChild(2 + i)); transform.GetChild(2 + i).localScale *= 0.0f; } if ( hasShield ) { shield = transform.GetChild(2).GetComponent<Renderer>(); flareGain = transform.root.Find("FlareGain").GetComponent<ParticleSystem>(); flareLose = transform.root.Find("FlareLose").GetComponent<ParticleSystem>(); } StartCoroutine(EvadeAllies()); StartCoroutine(AlternateSeek()); StartCoroutine(SeekEnemies()); if ( barrels > 0 ) { StartCoroutine(AttackEnemies()); } if ( hasShield ) { StartCoroutine(HealAllies()); } if ( isBoss ) { cgBoss.alpha = 1.0f; slBoss.value = 1.0f; } if ( isRegeneration ) { StartCoroutine(SelfHealing()); } }
public void Upgrade() { source.PlayOneShot(upgradeSound, 1.0f); level++; UpdateLevelText(); switch (turretType) { case Type.Gatling: { switch (level) { case 2: { if (isVampire) { actor.SetMaxHealth2(78); } else { actor.SetMaxHealth(78); } upgradeCost = 250; } break; case 3: { fireRate = 3.6f; upgradeCost = 400; } break; case 4: { damage = 3.75f; upgradeCost = 700; } break; case 5: { if (isVampire) { actor.SetMaxHealth2(97.5f); } else { actor.SetMaxHealth(97.5f); } } break; } } break; case Type.Gauss: { switch (level) { case 2: { if (isVampire) { actor.SetMaxHealth2(96); } else { actor.SetMaxHealth(96); } upgradeCost = 350; } break; case 3: { damage = 12.5f; upgradeCost = 500; } break; case 4: { damage = 15.0f; upgradeCost = 800; } break; case 5: { fireRate = 0.375f; } break; } } break; case Type.Laser: { switch (level) { case 2: { if (isVampire) { actor.SetMaxHealth2(62.5f); } else { actor.SetMaxHealth(62.5f); } upgradeCost = 450; } break; case 3: { fireRate = 5.0f; upgradeCost = 600; } break; case 4: { damage = 6.25f; upgradeCost = 900; } break; case 5: { fireRate = 6.0f; } break; } } break; } if (isSuperReload) { fireRate *= 1.5f; } }