Fixed Divine Hymn, Hymn of Hope, Dispersion and Amplify Magic being erroneously displayed as debuffs, instead of buffs. Based on previous thenecromancer's implementation.

--HG--
branch : trunk
This commit is contained in:
Xanadu
2010-06-23 03:45:44 +02:00
parent 71d47b384f
commit 05976b7708
+33 -11
View File
@@ -750,20 +750,42 @@ bool SpellMgr::_isPositiveEffect(uint32 spellId, uint32 effIndex, bool deep) con
if (spellproto->Attributes & SPELL_ATTR_NEGATIVE_1) if (spellproto->Attributes & SPELL_ATTR_NEGATIVE_1)
return false; return false;
switch(spellId) switch (spellproto->SpellFamilyName)
{ {
//case 37675: // Chaos Blast removed from mangos case SPELLFAMILY_GENERIC:
case 34700: // Allergic Reaction switch (spellId)
case 61987: // Avenging Wrath Marker {
case 61988: // Divine Shield exclude aura case 34700: // Allergic Reaction
case 50524: // Runic Power Feed case 61987: // Avenging Wrath Marker
return false; case 61988: // Divine Shield exclude aura
case 12042: // Arcane Power return false;
case 30877: // Tag Murloc case 30877: // Tag Murloc
return true; return true;
default:
break;
}
break;
case SPELLFAMILY_MAGE:
// Amplify Magic, Dampen Magic
if (spellproto->SpellFamilyFlags[0] == 0x00002000)
return true;
break;
case SPELLFAMILY_PRIEST:
switch (spellId)
{
case 64844: // Divine Hymn
case 64904: // Hymn of Hope
case 47585: // Dispersion
return true;
default:
break;
}
break;
default:
break;
} }
switch(spellproto->Mechanic) switch (spellproto->Mechanic)
{ {
case MECHANIC_IMMUNE_SHIELD: case MECHANIC_IMMUNE_SHIELD:
return true; return true;