/// <summary>
    /// This method takes the name of the attack and then passes it into other methods in the Attack_Switch_Case to get the effect
    /// of the attack on the enemy or player pokemon, if it is a status type of attack or one that deals damage or stuns...ect.
    /// </summary>
    public void calculateAttackEffect()
    {
        int attack_index = getAttackListIndex(attack_name);
        //Debug.Log("attack index: " + attack_index);
        string attackCat = attacks.attackList[attack_index].cat;

        float predictedDamage = calculateDamage(attack_name);
        int   accuracy        = attacks.attackList[attack_index].accuracy;
        //Debug.Log("Predicted Damage: " + predictedDamage);

        bool hit = checkAccuracy_and_Hit(accuracy);

        if (!hit)
        {
            return;
        }
        //Debug.Log("Attack Name: " + attack_name);
        switch (attackCat)
        {
        case "Status":
            attack_Switch_Case.updateTurnController(isPlayer, attack_name, AttackType.status);
            break;

        case "Physical":
            attack_Switch_Case.physicalAttacks(attack_name, predictedDamage, isPlayer);
            break;

        case "Special":
            attack_Switch_Case.specialAttacks(attack_name, predictedDamage, isPlayer);
            break;
        }
    }