[11050] Implement aura state AURA_STATE_BLEEDING (18)

Signed-off-by: zergtmn <zerg@myisp.com>
This commit is contained in:
Sarjuuk 2011-01-20 03:23:23 +05:00 committed by zergtmn
parent 4ddedf0804
commit a7bf12de71
3 changed files with 25 additions and 2 deletions

View file

@ -923,7 +923,7 @@ enum AuraState
AURA_STATE_SWIFTMEND = 15, // T |
AURA_STATE_DEADLY_POISON = 16, // T |
AURA_STATE_ENRAGE = 17, // C |
//AURA_STATE_UNKNOWN18 = 18, // C t|
AURA_STATE_BLEEDING = 18, // C t|
//AURA_STATE_UNKNOWN19 = 19, // | not used
//AURA_STATE_UNKNOWN20 = 20, // c | only (45317 Suicide)
//AURA_STATE_UNKNOWN21 = 21, // | not used

View file

@ -8200,6 +8200,10 @@ void SpellAuraHolder::_AddSpellAuraHolder()
// Enrage aura state
if(m_spellProto->Dispel == DISPEL_ENRAGE)
m_target->ModifyAuraState(AURA_STATE_ENRAGE, true);
// Bleeding aura state
if (GetAllSpellMechanicMask(m_spellProto) & (1 << (MECHANIC_BLEED-1)))
m_target->ModifyAuraState(AURA_STATE_BLEEDING, true);
}
}
@ -8254,6 +8258,25 @@ void SpellAuraHolder::_RemoveSpellAuraHolder()
if(m_spellProto->Dispel == DISPEL_ENRAGE)
m_target->ModifyAuraState(AURA_STATE_ENRAGE, false);
// Bleeding aura state
if (GetAllSpellMechanicMask(m_spellProto) & (1 << (MECHANIC_BLEED-1)))
{
bool found = false;
Unit::SpellAuraHolderMap const& holders = m_target->GetSpellAuraHolderMap();
for (Unit::SpellAuraHolderMap::const_iterator itr = holders.begin(); itr != holders.end(); ++itr)
{
if (GetAllSpellMechanicMask(itr->second->GetSpellProto()) & (1 << (MECHANIC_BLEED-1)))
{
found = true;
break;
}
}
if (!found)
m_target->ModifyAuraState(AURA_STATE_BLEEDING, false);
}
uint32 removeState = 0;
uint64 removeFamilyFlag = m_spellProto->SpellFamilyFlags;
uint32 removeFamilyFlag2 = m_spellProto->SpellFamilyFlags2;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "11049"
#define REVISION_NR "11050"
#endif // __REVISION_NR_H__