Example #1
0
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;
}
Example #2
0
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;
}
Example #3
0
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;
}
Example #4
0
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;
}
Example #7
0
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;
}
Example #8
0
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;
}
Example #10
0
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;
}
Example #11
0
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;
}
Example #12
0
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;
}
Example #13
0
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;
}
Example #14
0
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;
}
Example #15
0
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;
}
Example #16
0
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;
}
Example #17
0
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;
}