protected override void Apply() { base.Apply(); var chr = m_aura.Owner as Character; if (chr != null) { //Overkill if (chr.Spells.Contains(SpellId.RogueAssassinationOverkill)) { var ovk = chr.Auras[SpellId.ClassSkillOverkill]; if (ovk != null) { ovk.Duration = -1; //no duration/last forever AuraHandler.SendAuraUpdate(m_aura.Owner, ovk); } else { chr.Auras.CreateAndStartAura(m_aura.CasterReference, SpellHandler.Get(SpellId.ClassSkillOverkill), true); } } //Master of Subtlety if (chr.Auras[SpellLineId.RogueSubtletyMasterOfSubtlety] != null) { chr.Auras.Remove(SpellId.MasterOfSubtlety_2); //remove periodic dummy so dmg buff doesn't get removed if casting stealth again var masterofsub = chr.Auras[SpellLineId.RogueSubtletyMasterOfSubtlety, true]; var customspell = SpellHandler.Get(SpellId.MasterOfSubtlety); customspell.Effects[0].BasePoints = masterofsub.Spell.Effects[0].BasePoints; chr.Auras.CreateAndStartAura(m_aura.CasterReference, customspell, true); } } }
protected override void Apply() { base.Apply(); var chr = (Character)m_aura.Owner; if (chr != null) { var aura = chr.Auras[SpellId.ResurrectionSickness]; if (aura != null) { if (chr.Level < 20) { aura.Duration = (chr.Level - 10) * 60000; AuraHandler.SendAuraUpdate(aura.Owner, aura); } else { aura.Duration = 600000; AuraHandler.SendAuraUpdate(aura.Owner, aura); } } } }
protected override void Remove(bool cancelled) { base.Remove(cancelled); var chr = m_aura.Owner as Character; if (chr != null) { chr.Auras.Remove(SpellLineId.RogueVanish); //Overkill var overkill = chr.Auras[SpellId.ClassSkillOverkill]; if (overkill != null) { overkill.Duration = 20000; //20 sec AuraHandler.SendAuraUpdate(m_aura.Owner, overkill); } //Master of Subtlety if (chr.Auras[SpellId.MasterOfSubtlety] != null) { chr.SpellCast.Trigger(SpellId.MasterOfSubtlety_2, chr); //trigger periodic dummy } } }