aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp45
1 files changed, 32 insertions, 13 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index b31eab7572c..52d858f8542 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -209,18 +209,7 @@ void Unit::Update( uint32 p_time )
_UpdateAura();
}else
m_AurasCheck -= p_time;*/
- const uint64& auramask = GetAuraUpdateMask();
- if (auramask)
- {
- for(uint32 i = 0; i < MAX_AURAS; ++i)
- {
- if(auramask & (uint64(1) << i))
- {
- SendAuraUpdate(i);
- }
- }
- ResetAuraUpdateMask();
- }
+ UpdateAuras();
// WARNING! Order of execution here is important, do not change.
// Spells must be processed with event system BEFORE they go to _UpdateSpells.
@@ -265,6 +254,22 @@ void Unit::Update( uint32 p_time )
i_motionMaster.UpdateMotion(p_time);
}
+void Unit::UpdateAuras()
+{
+ const uint64& auramask = GetAuraUpdateMask();
+ if (auramask)
+ {
+ for(uint32 i = 0; i < MAX_AURAS; ++i)
+ {
+ if(auramask & (uint64(1) << i))
+ {
+ SendAuraUpdate(i);
+ }
+ }
+ ResetAuraUpdateMask();
+ }
+}
+
bool Unit::haveOffhandWeapon() const
{
if(GetTypeId() == TYPEID_PLAYER)
@@ -4328,6 +4333,9 @@ Aura* Unit::GetAura(AuraType type, uint32 family, uint32 familyFlag1, uint32 fam
bool Unit::HasAura(uint32 spellId) const
{
+ //Special case for non existing spell
+ if (spellId==61988)
+ return HasAura(61987) || HasAura(25771);
for (int i = 0; i < 3 ; ++i)
{
AuraMap::const_iterator iter = m_Auras.find(spellEffectPair(spellId, i));
@@ -5783,6 +5791,15 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
triggered_spell_id = 31803;
break;
}
+ // Seal of Corruption
+ case 53736:
+ {
+ if(effIndex != 0) // effect 1,2 used by seal unleashing code
+ return false;
+
+ triggered_spell_id = 53742;
+ break;
+ }
// Spiritual Attunement
case 31785:
case 33776:
@@ -6930,7 +6947,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
// Bloodthirst (($m/100)% of max health)
case 23880:
{
- basepoints0 = int32(GetMaxHealth() * triggerAmount / 10000);
+ basepoints0 = int32(GetMaxHealth() * triggerAmount / 100);
break;
}
// Shamanistic Rage triggered spell
@@ -9848,6 +9865,8 @@ void Unit::setDeathState(DeathState s)
{
RemoveAllAurasOnDeath();
UnsummonAllTotems();
+ //This is needed to clear visible auras after unit dies
+ UpdateAuras();
ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, false);
ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, false);