public static void TakeDamage(this ICharacterClass characterClass, float damage) { if (characterClass.CheckIfDead() == false) { if (characterClass.CheckIfContainsCondition <DamageReduction>()) { Debug.Log("Hitting player on Damage reduction"); } characterClass.SetCurrentHealth(characterClass.GetCurrentHealth() - damage); if (characterClass.CheckIfDead()) { if (OnPlayerDeath != null) { OnPlayerDeath.Invoke(characterClass); } } characterClass.GetStatusBarManager().PerformValueChangeTextEffectWithColor(damage, StateValueChangeAction.TakingDamage); } }
public static void TakeHealing(this ICharacterClass characterClass, float healingTaken) { if (characterClass.CheckIfDead() == false) { float maximumHealth = characterClass.GetMaximumHealth(); float currentHealth = characterClass.GetCurrentHealth(); bool healingOverflow = currentHealth + healingTaken > maximumHealth; float validatedHealthValue = healingOverflow ? maximumHealth : currentHealth + healingTaken; characterClass.SetCurrentHealth(validatedHealthValue); characterClass.GetStatusBarManager().PerformValueChangeTextEffectWithColor(healingTaken, StateValueChangeAction.TakingHealing); } }