public void Heal(SourcedHeal heal) { OnHealing(heal); heal = CalculateHealingModifiers(heal); _healthable.Value += heal.Value; OnHealed(heal); }
void CastBlackRoseLifeTap(IDamageable damageable) { var dmgVal = new Damage(_brDamage, DamageType.Magical, DamageFlags.Ability); var damage = new SourcedDamage(Self, dmgVal); damageable.TakeDamage(damage); var selfHeal = new SourcedHeal(Self, _brSelfHeal); Modules.Healable.Heal(selfHeal); }
void CastRedRoseLifeTap(IHealable healable) { var heal = new SourcedHeal(Self, _rrHeal); healable.Heal(heal); }
protected virtual SourcedHeal CalculateHealingModifiers(SourcedHeal heal) => HealingModifiers.CalculateChange(this, heal);
protected virtual void OnHealed(SourcedHeal heal) => Healed?.Invoke(this, heal);