public void ResolveAttack()
    {
        if (GameManager.CurrentState != FightState.ConfrontState)
        {
            return;
        }

        if (Player1.ChosenAttacks.Count == 0)
        {
            GameManager.ConfrontIsOver();
            return;
        }

        Attack attack1 = Player1.ChosenAttacks.Dequeue();
        Attack attack2 = Player2.ChosenAttacks.Dequeue();

        AttackAnimation anim1 = Player1.ChosenAttacksAnim.Dequeue();
        AttackAnimation anim2 = Player2.ChosenAttacksAnim.Dequeue();

        Move1Started.Invoke(attack1.Image);
        Move2Started.Invoke(attack2.Image);

        if (attack1.Fervor != attack2.Fervor)
        {
            Player1.Fervor.Value += attack1.Fervor - attack2.Fervor;
            Player2.Fervor.Value += attack2.Fervor - attack1.Fervor;
        }

        anim1.StartAnimation(Attack1EndStatus);
        Player1.GetComponentInChildren <Animator>().SetTrigger(anim1.triggerName);

        anim2.StartAnimation(Attack2EndStatus);
        Player2.GetComponentInChildren <Animator>().SetTrigger(anim2.triggerName);


        result1.Reset();
        result2.Reset();

        Attack1EndStatus.Value = false;
        attack1.ResolveAttack(Player1, Player2, attack2, result1, result2);

        Attack2EndStatus.Value = false;
        attack2.ResolveAttack(Player2, Player1, attack1, result2, result1);


        CreatePopups();


        if (Player1.Population.Value <= 0)
        {
            GameManager.CallGameOver(Player2);
        }
        if (Player2.Population.Value <= 0)
        {
            GameManager.CallGameOver(Player1);
        }
    }