diff options
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r-- | src/game/Unit.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 1546ccdb927..c2d6f77acec 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -3769,6 +3769,25 @@ int32 Unit::GetMaxNegativeAuraModifierByMiscValue(AuraType auratype, int32 misc_ return modifier; } +void Unit::SendAuraVisualForSelf(bool apply, uint32 id, uint8 effmask) +{ + WorldPacket data(SMSG_AURA_UPDATE); + data.append(GetPackGUID()); + // use always free 64+ slots + data << uint8(MAX_AURAS); + if (!apply) + { + data << uint32(0); + SendMessageToSet(&data, true); + return; + } + data << uint32(id); + data << uint8(AFLAG_CASTER | AFLAG_POSITIVE | effmask); + data << uint8(getLevel()); + data << uint8(1); + SendMessageToSet(&data, true); +} + bool Unit::AddAura(Aura *Aur, bool handleEffects) { // aura doesn't apply effects-return @@ -4285,6 +4304,9 @@ bool Unit::HasAura(uint32 spellId, uint64 caster) const //Special case for non existing spell if (spellId==61988) return HasAura(61987, caster) || HasAura(25771, caster); + // Demonic Circle - special aura for client + else if (spellId==62388) + return HasAura(48018, caster); if (Aura * aur = GetAura(spellId, caster)) return true; @@ -6088,7 +6110,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger { if (pVictim->getPowerType() == POWER_MANA) { - // 2% of maximum mana + // 2% of base mana basepoints0 = int32(pVictim->GetCreateMana() * 2 / 100); pVictim->CastCustomSpell(pVictim, 20268, &basepoints0, NULL, NULL, true, 0, triggeredByAura); } |