public override void OnAttack(DamageAction action) { //if (!action.IsDot) { var amount = action.GetDamagePercent(EffectValue); Owner.Heal(amount, m_aura.CasterUnit, m_spellEffect); } }
public override void OnAttack(DamageAction action) { if (action.IsMagic) { // "Increases damage of all spells against targets with less than 35% health by $s1%." if (action.Victim.HealthPct <= 35) { action.Damage += action.GetDamagePercent(EffectValue); } } }
public override void OnDefend(DamageAction action) { // absorb EffectValue % from the damage var absorbed = Math.Min(action.GetDamagePercent(EffectValue), RemainingValue); // RemainingValue corresponds to AMZ's health, when it reaches 0, AMZ will be destroyed RemainingValue = action.Absorb(absorbed, (DamageSchoolMask)m_spellEffect.MiscValue); }
public override void OnAttack(DamageAction action) { var attacker = action.Attacker; // same as Owner var victim = action.Victim; var dmg = action.GetDamagePercent(EffectValue); victim.AddMessage(() => victim.DealSpellDamage(attacker, m_spellEffect, dmg, false, false)); // may not crit }
public override void OnHit(DamageAction action) { var chr = action.Attacker as Character; if (chr != null) { if (chr.Group != null) { List<Character> origGroup = new List<Character>(chr.Group.GetAllCharacters()); List<Character> scrambledGroup = new List<Character>(); Random randNum = new Random(); int i = -1; foreach (Character groupMember in origGroup) { i++; if (groupMember == chr) continue; if (randNum.NextDouble() < (3 - scrambledGroup.Count / origGroup.Count - i)) scrambledGroup.Add(groupMember); } var effect = SpellHandler.Get(SpellId.DivineStorm_2).GetEffect(SpellEffectType.Heal); foreach (Character target in scrambledGroup) target.Heal(action.GetDamagePercent(25), chr, effect); } } base.OnHit(action); }
public override void OnDefend(DamageAction action) { // absorb EffectValue % from the damage var absorbed = Math.Min(action.GetDamagePercent(EffectValue), RemainingValue); RemainingValue = action.Absorb(absorbed, (DamageSchoolMask)m_spellEffect.MiscValue); }