예제 #1
0
    // Убиваем юнита (от рук другого юнита/снаряда)
    public void Death()
    {
        if (!IsDead)
        {
            // Частицы смерти
            particles_manager.DeathParticles(dp_size, death_particles_colors, transform.position.x, transform.position.y + 0.7f);

            // Если вражеский юнит
            if (!isAlly)
            {
                cam_shake.SmallShake(); // Дёргаем камеру
                int gold, xp;

                switch (UnitClass)
                {
                case "Yeti":
                case "Ogre":
                case "Viper":
                case "Minotaur":
                case "Giant Spider":
                    if (ClassicGenerator.instance.map_type != 4)
                    {
                        gold = Random.Range(2, 6);
                        xp   = Random.Range(9, 15);
                    }
                    else
                    {
                        gold = Random.Range(4, 8);
                        xp   = Random.Range(2, 8);
                    }
                    break;

                default:
                    // Обычный режим
                    if (ClassicGenerator.instance.map_type != 4)
                    {
                        gold = Random.Range(1, 4);
                        xp   = Random.Range(6, 11);
                    }
                    // Арена
                    else
                    {
                        gold = Random.Range(3, 6);
                        xp   = Random.Range(1, 5);
                    }
                    break;
                }

                GlobalStats.AddGold(gold);                                                                    // Прибавляем золото
                GlobalStats.AddToStats("Enemies Killed");                                                     // +1 убитый юнит в статистику
                PlayerLevelManager.player_level_manager.AddXP(xp);                                            // Прибавляем опыт
                particles_manager.SpawnCoin(gold, transform.position.x - 0.1f, transform.position.y + 0.75f); // Частица монетки
            }
            else
            {
                // Если есть вирус, создаём "паразитов"
                if (VirusType > 0)
                {
                    AdditionalUnitsSpawner.instance.SpawnParasite(VirusType, transform.position.x, transform.position.y);
                    particles_manager.SpawnParticles("Death", transform.position.x, transform.position.y + 0.35f);
                }
            }

            DisableUnit(); // Отключаем и уничтожаем юнита
        }
    }