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); } } }