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:
Aokromes
2016-04-13 20:39:21 +02:00
parent 26de4214b1
commit e8d994f568
2 changed files with 26 additions and 2 deletions

View File

@@ -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;

View File

@@ -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());
}