private void OnModifierChange(AddModifierEffectHandler modifier) { foreach (var aura in Owner.Auras) { if (aura.IsActivated && !aura.Spell.IsEnhancer && modifier.SpellEffect.MatchesSpell(aura.Spell)) { // activated, passive Aura, affected by this modifier -> Needs to re-apply aura.ReApplyNonPeriodicEffects(); } } }
public void AddSpellModifierFlat(AddModifierEffectHandler modifier) { if (modifier.Charges > 0) { ModifierWithChargesCount++; } SpellModifiersFlat.Add(modifier); OnModifierChange(modifier); AuraHandler.SendModifierUpdate((Character)m_owner, modifier.SpellEffect, false); }
public void RemoveSpellModifierFlat(AddModifierEffectHandler modifier) { if (modifier.Charges > 0) { ModifierWithChargesCount--; } OnModifierChange(modifier); AuraHandler.SendModifierUpdate((Character)m_owner, modifier.SpellEffect, false); SpellModifiersFlat.Remove(modifier); }
public void RemoveSpellModifierPercent(AddModifierEffectHandler modifier) { if (modifier.Charges > 0) { ModifierWithChargesCount--; } SpellModifiersPct.Remove(modifier); OnModifierChange(modifier); AuraHandler.SendModifierUpdate((Character)m_owner, modifier.SpellEffect, true); }