*Fix improved devouring plague.

--HG--
branch : trunk
This commit is contained in:
QAston
2009-08-28 15:36:17 +02:00
parent 183e4c4bf9
commit 3094cefe75
2 changed files with 17 additions and 26 deletions
+17
View File
@@ -1006,6 +1006,23 @@ void Aura::HandleAuraSpecificMods(bool apply)
}
}
}
else if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_PRIEST)
{
// Devouring Plague
if (GetSpellProto()->SpellFamilyFlags[0] & 0x02000000 && GetPartAura(0))
{
Unit * caster = GetCaster();
if (!caster)
return;
// Improved Devouring Plague
if (AuraEffect const * aurEff = caster->GetDummyAura(SPELLFAMILY_PRIEST, 3790, 1))
{
int32 basepoints0 = aurEff->GetAmount() * GetPartAura(0)->GetTotalTicks() * GetPartAura(0)->GetAmount() / 100;
caster->CastCustomSpell(m_target, 63675, &basepoints0, NULL, NULL, true, NULL, GetPartAura(0));
}
}
}
else if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_ROGUE)
{
// Sprint (skip non player casted spells by category)
-26
View File
@@ -12757,7 +12757,6 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
takeCharges = true;
}
uint32 procDebug = 0;
if (!handled)
for (uint8 effIndex = 0; effIndex<MAX_SPELL_EFFECTS;++effIndex)
{
@@ -12794,56 +12793,31 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
{
sLog.outDebug("ProcDamageAndSpell: casting spell id %u (triggered by %s dummy aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
if (HandleDummyAuraProc(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown))
{
takeCharges=true;
if (procDebug & 1)
sLog.outError("Dummy aura of spell %d procs twice from one effect!",spellInfo->Id);
procDebug |= 1;
}
break;
}
case SPELL_AURA_OBS_MOD_POWER:
sLog.outDebug("ProcDamageAndSpell: casting spell id %u (triggered by %s aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
if (HandleObsModEnergyAuraProc(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown))
{
takeCharges=true;
if (procDebug & 2)
sLog.outError("ObsModEnergy aura of spell %d procs twice from one effect!",spellInfo->Id);
procDebug |= 2;
}
break;
case SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN:
sLog.outDebug("ProcDamageAndSpell: casting spell id %u (triggered by %s aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
if (HandleModDamagePctTakenAuraProc(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown))
{
takeCharges=true;
if (procDebug & 16)
sLog.outError("ModDamagePctTaken aura of spell %d procs twice from one effect!",spellInfo->Id);
procDebug |= 16;
}
break;
case SPELL_AURA_MOD_HASTE:
{
sLog.outDebug("ProcDamageAndSpell: casting spell id %u (triggered by %s haste aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
if (HandleHasteAuraProc(pTarget, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown))
{
takeCharges=true;
if (procDebug & 4)
sLog.outError("Haste aura of spell %d procs twice from one effect!",spellInfo->Id);
procDebug |= 4;
}
break;
}
case SPELL_AURA_OVERRIDE_CLASS_SCRIPTS:
{
sLog.outDebug("ProcDamageAndSpell: casting spell id %u (triggered by %s aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
if (HandleOverrideClassScriptAuraProc(pTarget, damage, triggeredByAura, procSpell, cooldown))
{
takeCharges=true;
if (procDebug & 8)
sLog.outError("OverrideClassScripts aura of spell %d procs twice from one effect!",spellInfo->Id);
procDebug |= 8;
}
break;
}
case SPELL_AURA_RAID_PROC_FROM_CHARGE_WITH_VALUE: