[10033] Use sometime stored in spell data triggred spell info for dummy auras.

This commit is contained in:
VladimirMangos 2010-06-06 17:28:30 +04:00
parent c0be5c0926
commit 63018ccc4a
2 changed files with 10 additions and 13 deletions

View file

@ -2204,12 +2204,14 @@ void Unit::CalculateAbsorbAndResist(Unit *pCaster, SpellSchoolMask schoolMask, D
int32 amount = int32(incanterAbsorption * (*itr)->GetModifier()->m_amount / 100);
uint32 triggered_id = itr_spellProto->EffectTriggerSpell[(*itr)->GetEffIndex()];
// apply normalized part of already accumulated amount in aura
if (Aura* spdAura = GetAura(44413, EFFECT_INDEX_0))
if (Aura* spdAura = GetAura(triggered_id, EFFECT_INDEX_0))
amount += spdAura->GetModifier()->m_amount * spdAura->GetAuraDuration() / spdAura->GetAuraMaxDuration();
// Incanter's Absorption (triggered absorb based spell power, will replace existed if any)
CastCustomSpell(this, 44413, &amount, NULL, NULL, true);
CastCustomSpell(this, triggered_id, &amount, NULL, NULL, true, NULL, *itr);
break;
}
}
@ -5113,7 +5115,8 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
Item* castItem = triggeredByAura->GetCastItemGUID() && GetTypeId()==TYPEID_PLAYER
? ((Player*)this)->GetItemByGuid(triggeredByAura->GetCastItemGUID()) : NULL;
uint32 triggered_spell_id = 0;
// some dummy spells have trigger spell in spell data already (from 3.0.3)
uint32 triggered_spell_id = dummySpell->EffectApplyAuraName[effIndex] == SPELL_AURA_DUMMY ? dummySpell->EffectTriggerSpell[effIndex] : 0;
Unit* target = pVictim;
int32 basepoints[MAX_EFFECT_INDEX] = {0, 0, 0};
@ -5691,12 +5694,6 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
triggered_spell_id = 22858;
break;
}
// Gag Order
if (dummySpell->SpellIconID == 280)
{
triggered_spell_id = 18498; // Silenced - Gag Order
break;
}
// Second Wind
if (dummySpell->SpellIconID == 1697)
{
@ -5998,7 +5995,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
return false;
basepoints[0] = int32(target->GetMaxHealth() * triggerAmount / 100);
triggered_spell_id = 56131;
// triggered_spell_id in spell data
break;
}
}
@ -6585,7 +6582,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
// Sacred Shield (talent rank)
case 53601:
{
triggered_spell_id = 58597;
// triggered_spell_id in spell data
target = this;
break;
}
@ -7125,7 +7122,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
// Blood-Caked Blade
if (dummySpell->SpellIconID == 138)
{
triggered_spell_id = dummySpell->EffectTriggerSpell[effIndex];
// triggered_spell_id in spell data
break;
}
break;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "10032"
#define REVISION_NR "10033"
#endif // __REVISION_NR_H__