private void Update()
    {
        if (tryingToAttack && Vector3.Distance(attackTarget.position, transform.position) <= characterInfo.Reach)
        {
            characterMovement.LookAt(attackTarget);
            animator.AttackAnimate();
            Debug.Log("Hit Chance was: " + characterInfo.OffensiveStats.GetHitChancePercentage(attackTarget.GetComponent <CharacterInformation>().DefensiveStats) + "%");
            if (characterInfo.OffensiveStats.Attack(attackTarget.GetComponent <CharacterInformation>().DefensiveStats))
            {
                var atkData = GetWeaponAttackData(!offHandAttacking);
                if (!offHandAttacking)
                {
                    atkData.PhysicalDamage += characterInfo.Abilities.Strength - 10; //this huge calculation should be done somewhere else
                }
                attackTarget.GetComponent <CharacterCombatController>().Damaged(atkData);
            }
            tryingToAttack   = false;
            offHandAttacking = false;
            attackTarget     = null;
        }

        if (Input.GetKeyUp(KeyCode.F))
        {
            Debug.Log("Button F Pressed.");
            if (IsTargetingSkill)
            {
                CancelSkillUse();
                return;
            }
            if (TestFireball != null)
            {
                AttemptToUseSkill(TestFireball);
            }
        }
    }