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>}"
            });
        }
Esempio n. 2
0
        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);
            });
        }
Esempio n. 3
0
		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);
			});
		}
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
		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>}"
			});
		}
Esempio n. 6
0
		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);
		}