mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 16:38:42 +01:00
Core/Spells: Implemented spell effects SPELL_EFFECT_UPDATE_PLAYER_PHASE and SPELL_EFFECT_UPDATE_ZONE_AURAS_AND_PHASES
By Lopfest
This commit is contained in:
@@ -354,6 +354,8 @@ class Spell
|
||||
void EffectGiveCurrency(SpellEffIndex effIndex);
|
||||
void EffectResurrectWithAura(SpellEffIndex effIndex);
|
||||
void EffectCreateAreaTrigger(SpellEffIndex effIndex);
|
||||
void EffectUpdatePlayerPhase(SpellEffIndex effIndex);
|
||||
void EffectUpdateZoneAurasAndPhases(SpellEffIndex effIndex);
|
||||
|
||||
typedef std::set<Aura*> UsedSpellMods;
|
||||
|
||||
|
||||
@@ -227,10 +227,10 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]=
|
||||
&Spell::EffectRemoveAura, //164 SPELL_EFFECT_REMOVE_AURA
|
||||
&Spell::EffectDamageFromMaxHealthPCT, //165 SPELL_EFFECT_DAMAGE_FROM_MAX_HEALTH_PCT
|
||||
&Spell::EffectGiveCurrency, //166 SPELL_EFFECT_GIVE_CURRENCY
|
||||
&Spell::EffectNULL, //167 SPELL_EFFECT_167
|
||||
&Spell::EffectUpdatePlayerPhase, //167 SPELL_EFFECT_UPDATE_PLAYER_PHASE
|
||||
&Spell::EffectNULL, //168 SPELL_EFFECT_168
|
||||
&Spell::EffectNULL, //169 SPELL_EFFECT_DESTROY_ITEM
|
||||
&Spell::EffectNULL, //170 SPELL_EFFECT_170
|
||||
&Spell::EffectUpdateZoneAurasAndPhases, //170 SPELL_EFFECT_UPDATE_ZONE_AURAS_AND_PHASES
|
||||
&Spell::EffectNULL, //171 SPELL_EFFECT_171
|
||||
&Spell::EffectResurrectWithAura, //172 SPELL_EFFECT_RESURRECT_WITH_AURA
|
||||
&Spell::EffectUnlockGuildVaultTab, //173 SPELL_EFFECT_UNLOCK_GUILD_VAULT_TAB
|
||||
@@ -5764,3 +5764,25 @@ void Spell::EffectCreateAreaTrigger(SpellEffIndex effIndex)
|
||||
if (!areaTrigger->CreateAreaTrigger(m_caster->GetMap()->GenerateLowGuid<HighGuid::AreaTrigger>(), triggerEntry, GetCaster(), GetSpellInfo(), pos))
|
||||
delete areaTrigger;
|
||||
}
|
||||
|
||||
void Spell::EffectUpdatePlayerPhase(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
|
||||
return;
|
||||
|
||||
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
|
||||
return;
|
||||
|
||||
unitTarget->UpdateAreaPhase();
|
||||
}
|
||||
|
||||
void Spell::EffectUpdateZoneAurasAndPhases(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
|
||||
return;
|
||||
|
||||
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
|
||||
return;
|
||||
|
||||
unitTarget->ToPlayer()->UpdateAreaDependentAuras(unitTarget->GetAreaId());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user