bool EyeForAnEye(uint32 i, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if(apply) target->AddProcTriggerSpell(25997, pAura->GetSpellProto()->Id, pAura->m_casterGuid, pAura->GetSpellProto()->procChance, PROC_ON_CRIT_HIT_VICTIM | PROC_ON_RANGED_CRIT_ATTACK_VICTIM | PROC_ON_SPELL_CRIT_HIT_VICTIM, 0, NULL, NULL); else target->RemoveProcTriggerSpell(25997, pAura->m_casterGuid); return true; }
bool VampiricEmbrace(uint8_t /*effectIndex*/, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if (apply) target->AddProcTriggerSpell(15290, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellInfo()->getProcChance(), PROC_ON_ANY_HOSTILE_ACTION | PROC_TARGET_SELF, 0, NULL, NULL); else target->RemoveProcTriggerSpell(15290, pAura->m_casterGuid); return true; }
bool DamageShield(uint32 i, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if(apply) target->AddProcTriggerSpell(59653, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellProto()->procChance, PROC_ON_MELEE_ATTACK_VICTIM | PROC_ON_BLOCK_VICTIM, 0, NULL, NULL); else target->RemoveProcTriggerSpell(59653, pAura->m_casterGuid); return true; }
bool DivineAegis(uint8_t /*effectIndex*/, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if (apply) target->AddProcTriggerSpell(47753, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellInfo()->getProcChance(), PROC_ON_SPELL_CRIT_HIT, 0, NULL, NULL); else target->RemoveProcTriggerSpell(47753, pAura->m_casterGuid); return true; }
bool MarkOfBlood(uint32 i, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if(apply) target->AddProcTriggerSpell(61607, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellProto()->procChance, pAura->GetSpellProto()->procFlags, pAura->GetSpellProto()->procCharges, NULL, NULL); else if(target->GetAuraStackCount(49005) <= 1) target->RemoveProcTriggerSpell(61607, pAura->m_casterGuid); return true; }
bool Butchery(uint32 i, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if(apply) target->AddProcTriggerSpell(50163, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellProto()->procChance, PROC_ON_GAIN_EXPIERIENCE | PROC_TARGET_SELF, 0, NULL, NULL); else target->RemoveProcTriggerSpell(50163, pAura->m_casterGuid); return true; }
bool JudgementOfWisdom(uint32 i, Aura* pAura, bool apply) { Unit* caster = pAura->GetUnitCaster(); if(caster == NULL) return true; if(apply) caster->AddProcTriggerSpell(20268, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellProto()->procChance, PROC_ON_MELEE_ATTACK | PROC_TARGET_SELF, 0, NULL, NULL); else caster->RemoveProcTriggerSpell(20268, pAura->m_casterGuid); return true; }
bool DeadlyBrew(uint8_t /*effectIndex*/, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if (apply) { static uint32 classMask[3] = { 0x1000A000, 0, 0 }; target->AddProcTriggerSpell(pAura->GetSpellInfo(), pAura->GetSpellInfo(), pAura->m_casterGuid, pAura->GetSpellInfo()->getProcChance(), PROC_ON_CAST_SPELL, 0, NULL, classMask); } else target->RemoveProcTriggerSpell(pAura->GetSpellId(), pAura->m_casterGuid); return true; }
bool DeathRuneMastery(uint32 i, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if(apply) { static uint32 classMask[3] = { 0x10, 0x20000, 0 }; target->AddProcTriggerSpell(50806, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellProto()->procChance, PROC_ON_CAST_SPELL | PROC_TARGET_SELF, 0, NULL, classMask); } else target->RemoveProcTriggerSpell(50806, pAura->m_casterGuid); return true; }
bool VampiricTouch(uint8_t effectIndex, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); switch (effectIndex) { case 0: if (apply) target->AddProcTriggerSpell(64085, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellInfo()->getProcChance(), PROC_ON_PRE_DISPELL_AURA_VICTIM | PROC_TARGET_SELF, 0, NULL, NULL); else target->RemoveProcTriggerSpell(64085, pAura->m_casterGuid); break; case 2: if (apply) target->AddProcTriggerSpell(34919, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellInfo()->getProcChance(), PROC_ON_SPELL_HIT_VICTIM, 0, NULL, NULL); else target->RemoveProcTriggerSpell(34919, pAura->m_casterGuid); break; } return true; }
bool SealOfRighteousness(uint32 i, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if(i == 0) { if(apply) target->AddProcTriggerSpell(25742, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellProto()->procChance, PROC_ON_MELEE_ATTACK, 0, NULL, NULL); else target->RemoveProcTriggerSpell(25742, pAura->m_casterGuid); } return true; }
bool ImprovedDevouringPlague(uint8_t /*effectIndex*/, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if (apply) { static uint32 classMask[3] = { 0x2000000, 0, 0 }; target->AddProcTriggerSpell(63675, pAura->GetSpellInfo()->getId(), pAura->m_casterGuid, pAura->GetSpellInfo()->getProcChance(), PROC_ON_CAST_SPELL, 0, NULL, classMask); } else target->RemoveProcTriggerSpell(63675, pAura->m_casterGuid); return true; }
bool BodyAndSoul(uint8_t effectIndex, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if (apply) { static uint32 classMask[3] = { 0, 1, 0 }; target->AddProcTriggerSpell(64134, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetModAmount(effectIndex), PROC_ON_CAST_SPELL | PROC_TARGET_SELF, 0, NULL, classMask); } else target->RemoveProcTriggerSpell(64134, pAura->m_casterGuid); return true; }
bool FlametongueWeaponPassive(uint32 i, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if(apply) { // target is always a player Item* item = TO_PLAYER(target)->GetItemInterface()->GetItemByGUID(pAura->itemCasterGUID); target->AddProcTriggerSpell(10444, pAura->GetSpellProto()->Id, pAura->m_casterGuid, pAura->GetSpellProto()->procChance, PROC_ON_MELEE_ATTACK, 0, NULL, NULL, item); } else target->RemoveProcTriggerSpell(10444, pAura->m_casterGuid, pAura->itemCasterGUID); return true; }
bool PrayerOfMendingAura(uint8_t /*effectIndex*/, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if (apply) target->AddProcTriggerSpell(pAura->GetSpellInfo(), pAura->GetSpellInfo(), pAura->m_casterGuid, pAura->GetSpellInfo()->getProcChance(), PROC_ON_ANY_DAMAGE_VICTIM, pAura->GetSpellInfo()->getProcCharges(), NULL, NULL); else { int32 count = target->GetAuraStackCount(pAura->GetSpellId()); if (count == 1) target->RemoveProcTriggerSpell(pAura->GetSpellId(), pAura->m_casterGuid); } return true; }
bool HotStreak(uint32 i, Aura *pAura, bool apply) { if( i == 0 ) { Unit *caster = pAura->GetUnitCaster(); if( apply ) { static uint32 classMask[3] = { 0x13, 0x21000, 0 }; caster->AddProcTriggerSpell(48108, pAura->GetSpellProto()->Id, caster->GetGUID(), pAura->GetSpellProto()->EffectBasePoints[i] +1, PROC_ON_SPELL_CRIT_HIT | PROC_ON_SPELL_HIT, 0, pAura->GetSpellProto()->EffectSpellClassMask[i], classMask); } else caster->RemoveProcTriggerSpell(48108); } return true; }
bool SealOfVengeance(uint32 i, Aura* pAura, bool apply) { Unit* target = pAura->GetTarget(); if(i == 0) { if(apply) { target->AddProcTriggerSpell(31803, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellProto()->procChance, PROC_ON_MELEE_ATTACK, 0, NULL, NULL); target->AddProcTriggerSpell(42463, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellProto()->procChance, PROC_ON_MELEE_ATTACK, 0, NULL, NULL); } else { target->RemoveProcTriggerSpell(31803, pAura->m_casterGuid); target->RemoveProcTriggerSpell(42463, pAura->m_casterGuid); } } return true; }