private IEnumerator EnemyAbilityInstantTime()
    {
        EventManager.Instance.SetEnemyAbilityName(currentAbility.GetName()); // Set UI

        yield return(new WaitForSeconds(0.5f));

        // Attacker
        attacker.AttackAnimation(currentAbility);

        // Select target
        CharacterFriendly target = SelectRandomTarget();

        if (tutorial) // TODO: cleanup
        {
            target = friendlyCharacters[1];
        }

        audioSource.PlayOneShot(currentAbility.sound);
        currentAbility.effect(target, attacker);

        // EventManager.Instance.AbilityUsed(attacker.abilities[0].GetName());
        SpawnVisualEffect(target);

        yield return(new WaitForSeconds(1f));

        enemyCharacters[currentEnemyNr].CharacterDeselect(); // Deselect character

        SwitchTurn();                                        // Enemy Turn end
    }
Ejemplo n.º 2
0
    private IEnumerator EnemyAbilityInstantTime(bool friendly)
    {
        EventManager.Instance.SetEnemyAbilityName(currentAbility.GetName()); // Set UI

        // Attacker
        attacker.AttackAnimation(currentAbility);

        yield return(new WaitForSeconds(0.5f));

        // Select target
        Character target = SelectRandomTarget(friendly);

        if (currentAbility.sound != null && !audioSource.isPlaying) // Play sound, if possible
        {
            audioSource.PlayOneShot(currentAbility.sound);
        }

        currentAbility.effect(target, attacker);

        //EventManager.Instance.AbilityUsed(attacker.abilities[0].GetName());

        if (currentAbility.visualEffect != null) // Use visual effect, if possible
        {
            SpawnVisualEffect(target);
        }

        yield return(new WaitForSeconds(1f));

        enemyCharacters[currentEnemyNr].CharacterDeselect(); // Deselect character

        SwitchTurn();                                        // Enemy Turn end
    }