Fix Vigilance.
Implements Glyph of Vigilance. Fixes issue #1134. Thanks Bodompelle for the idea, even thought the fix is rather different. --HG-- branch : trunk
This commit is contained in:
@@ -1320,6 +1320,17 @@ void Aura::HandleAuraSpecificMods(AuraApplication const * aurApp, Unit * caster,
|
||||
// mods at aura apply or remove
|
||||
switch (GetSpellProto()->SpellFamilyName)
|
||||
{
|
||||
case SPELLFAMILY_GENERIC:
|
||||
switch(GetId())
|
||||
{
|
||||
case 50720: // Vigilance
|
||||
if (apply)
|
||||
target->CastSpell(caster, 59665, true, 0, 0, caster->GetGUID());
|
||||
else
|
||||
target->SetReducedThreatPercent(0,0);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SPELLFAMILY_ROGUE:
|
||||
// Stealth
|
||||
if (GetSpellProto()->SpellFamilyFlags[0] & 0x00400000)
|
||||
|
||||
@@ -384,9 +384,16 @@ void ThreatManager::addThreat(Unit* pVictim, float fThreat, SpellSchoolMask scho
|
||||
// must check > 0.0f, otherwise dead loop
|
||||
if (threat > 0.0f && pVictim->GetReducedThreatPercent())
|
||||
{
|
||||
float reducedThreat = threat * pVictim->GetReducedThreatPercent() / 100;
|
||||
uint32 reducedThreadPercent = pVictim->GetReducedThreatPercent();
|
||||
|
||||
Unit *unit = pVictim->GetMisdirectionTarget();
|
||||
if (unit)
|
||||
if (Aura* pAura = unit->GetAura(63326)) // Glyph of Vigilance
|
||||
reducedThreadPercent += pAura->GetSpellProto()->EffectBasePoints[0];
|
||||
|
||||
float reducedThreat = threat * reducedThreadPercent / 100;
|
||||
threat -= reducedThreat;
|
||||
if (Unit *unit = pVictim->GetMisdirectionTarget())
|
||||
if (unit)
|
||||
_addThreat(unit, reducedThreat);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user