// Animation Event void Hit() { //1 float damage = CalculateDamage(); if (target == null) { return; } if (isBlockingAndInAngle()) { if (target.gameObject.tag == "Player") { StartCoroutine(_BlockHitReact()); } } Stamina stamina = this.GetComponent <Stamina>(); if (stamina != null) { stamina.GainStamina(currentWeaponConfig.GetStaminaGain()); } if (currentWeapon.value != null) { currentWeapon.value.OnHit(); } if (currentWeaponConfig.HasProjectile()) { currentWeaponConfig.LaunchProjectile(rightHandTransform, leftHandTransform, target, gameObject, damage); } else { target.TakeDamage(gameObject, damage); } }