private static void FixRegrowthAndRejuvenation(SpellLineId line) { line.Apply(spell => { // apply the AuraState, so swiftmend can be used (AuraState probably going to be replaced with an invisible Aura in later versions) spell.AddAuraEffect(() => new AddTargetAuraStateHandler(AuraStateMask.RejuvenationOrRegrowth)); var effect = spell.GetEffect(AuraType.PeriodicHeal); // TODO: Implement <mult> from "${$m1*5*$<mult>}" }); }
public static void MakeRuneConversionProc(SpellLineId line, SpellLineId trigger1, SpellLineId trigger2, RuneType to, params RuneType[] from) { line.Apply(spell => { spell.ProcTriggerFlags = ProcTriggerFlags.DoneHarmfulMagicSpell | ProcTriggerFlags.DoneMeleeSpell; var effect = spell.GetEffect(AuraType.Dummy2); // should not have an amplitude // (although it's probably the timeout for when the death rune is converted back to its original but it's not mentioned in the tooltip) effect.Amplitude = 0; effect.ClearAffectMask(); effect.AddAffectingSpells(trigger1, trigger2); effect.IsProc = true; effect.AuraEffectHandlerCreator = () => new ProcRuneConversionHandler(to, from); }); }
public static void MakeRuneConversionProc(SpellLineId line, SpellLineId trigger1, SpellLineId trigger2, RuneType to, params RuneType[] from) { line.Apply(spell => { spell.ProcTriggerFlags = ProcTriggerFlags.SpellCast; var effect = spell.GetEffect(AuraType.Dummy2); // should not have an amplitude // (although it's probably the timeout for when the death rune is converted back to its original but it's not mentioned in the tooltip) effect.Amplitude = 0; effect.ClearAffectMask(); effect.AddAffectingSpells(trigger1, trigger2); effect.IsProc = true; effect.AuraEffectHandlerCreator = () => new ProcRuneConversionHandler(to, from); }); }
private static void FixPassiveDiseaseTalent(SpellLineId passiveSpell, SpellId effectId) { // the debuff needs to use the disease talent to apply damage SpellEffect passiveEffect = null; passiveSpell.Apply(spell => { passiveEffect = spell.GetEffect(AuraType.Dummy); passiveEffect.APValueFactor = 0.055f * 1.15f; passiveEffect.RealPointsPerLevel = 0; }); SpellHandler.Apply(spell => { var dmgEffect = spell.GetEffect(AuraType.PeriodicDamage); dmgEffect.EffectValueOverrideEffect = passiveEffect; // calculate damage based on the passive spell }, effectId); }