Пример #1
0
 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());
     }
 }
Пример #2
0
    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;
        }
    }