Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
            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);
                        }
                    }
                }
            }
Exemplo n.º 3
0
        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
                }
            }
        }