public void ModifyHealth(DamageValue damageData) { float damageDealt = damageData.DamageDealt(this).value; if (damageDealt < 0) { PlaySound(unitClass.damageTakenSound[Player.faction]); } Health = Mathf.Clamp( Health + damageDealt, 0, unitClass.BaseHealth ); StartCoroutine(AnimateHealthChange(damageDealt, damageData)); if (Health == 0) { Kill(); } if (Player != null) { Player.NotifyHealthChange(); } }
public void SetValue(DamageValue damage, Unit unit) { DealtDamage damageDealt = damage.DamageDealt(unit, false); baseDamageText.gameObject.SetActive(false); extraDamageText.gameObject.SetActive(false); if ( damageDealt.resistanceEffect == DamageResistanceEffect.CancelDamage || damageDealt.resistanceEffect == DamageResistanceEffect.SetDamageToFixedAmount ) { ShowBaseDamage(damageDealt.value); } else { ShowBaseDamage(damage.baseFlatDmg); ShowExtraDamage(damage.extraFlatDamage); } }