public void TakeDamage(CharacterStats denfencer) { int damage = Mathf.Max(CurrentDamage() - denfencer.CurrentDefence, 0); denfencer.CurrentHealth = Mathf.Max(denfencer.CurrentHealth - damage, 0); if (isCritical) { denfencer.GetComponent <Animator>().SetTrigger("Hit"); } if (denfencer.CurrentHealth <= 0) { characterData.UpdateExp(denfencer.characterData.killPoint); } denfencer.UpdateHealthBarOnAttack?.Invoke(denfencer.CurrentHealth, denfencer.MaxHealth); }
public void TakeDamage(CharacterStates defender) { float damage = UnityEngine.Random.Range(attackData.minDamage, attackData.maxDamage); // Defense damage = Mathf.Max(damage - defender.CurrentDefense, 1.0f); // Criticl if (isCritical) { damage = damage * attackData.criticalMultiplier; } defender.CurrentHealth = Mathf.Max(defender.CurrentHealth - (int)damage, 0); defender.UpdateHealthBarOnAttack?.Invoke(defender.CurrentHealth, defender.MaxHealth); if (defender.characterData.currentHealth == 0) { characterData.UpdateExp(defender.characterData.killPoing); } }