diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 178bf3e43..32c266854 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -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 diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 3e9151f32..b723a0297 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -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; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 05e388a8d..5d33292e6 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "11049" + #define REVISION_NR "11050" #endif // __REVISION_NR_H__