// EnemyがPlayerを攻撃する
 void EnemyTurn()
 {
     enemy.Attack(player);
     if (player.hp == 0)
     {
         BattleEnd();
     }
 }
 // playerがEnemyを攻撃する
 public void OnAttackButton()
 {
     player.Attack(enemy);
     if (enemy.hp > 0)
     {
         EnemyTurn();
     }
     else
     {
         BattleEnd();
     }
 }
Exemple #3
0
    private void OnTriggerEnter2D(Collider2D col)
    {
        if (enemy == null && !isAlly && col.CompareTag("Shield") && canHit)
        {
            Health = 0;
            // Создаём частицы попадания снаряда
            ParticlesManager.instance.SpawnParticles("Shell Hit",
                                                     col.transform.position.x + Random.Range(-0.25f, 0.2f),
                                                     col.transform.position.y + Random.Range(-0.05f, 0.45f));

            CameraShake.instance.SmallShake(); // Трясём камеру
            CheckDeath();
        }

        // Если союзный снаряд обнаружил вражеского юнита
        if (enemy == null && isAlly && col.CompareTag("Enemy") && canHit)
        {
            enemy = col.GetComponent <UnitManager>(); // Кэшируем противника
            shell_owner.Attack(true, enemy);          // Проводим атаку
            Health--;                                 // Отнимаем здоровье у снаряда

            CheckDeath();
            StartCoroutine(HitCD());
        }

        // Если вражеский снаряд обнаружил союзного юнита
        else if (enemy == null && !isAlly && col.CompareTag("Ally") && canHit)
        {
            enemy = col.GetComponent <UnitManager>(); // Кэшируем противника
            shell_owner.Attack(true, enemy);          // Проводим атаку
            Health--;                                 // Отнимаем здоровье у снаряда

            CheckDeath();
            StartCoroutine(HitCD());
        }
    }