Core/Auras: Implemented SPELL_AURA_TRIGGER_SPELL_ON_EXPIRE

This commit is contained in:
Shauren
2021-12-27 15:11:06 +01:00
parent 15b9183635
commit 792dab8f05
3 changed files with 11 additions and 2 deletions

View File

@@ -586,7 +586,7 @@ enum AuraType : uint32
SPELL_AURA_492 = 492,
SPELL_AURA_493 = 493, // 1 spell, 267116 - Animal Companion (modifies Call Pet)
SPELL_AURA_SET_POWER_POINT_CHARGE = 494, // NYI
SPELL_AURA_TRIGGER_SPELL_ON_EXPIRE = 495, // NYI
SPELL_AURA_TRIGGER_SPELL_ON_EXPIRE = 495,
SPELL_AURA_ALLOW_CHANGING_EQUIPMENT_IN_TORGHAST = 496, // NYI
SPELL_AURA_MOD_ANIMA_GAIN = 497, // NYI
SPELL_AURA_CURRENCY_LOSS_PCT_ON_DEATH = 498, // NYI

View File

@@ -563,7 +563,7 @@ NonDefaultConstructible<pAuraEffectHandler> AuraEffectHandler[TOTAL_AURAS]=
&AuraEffect::HandleNULL, //492
&AuraEffect::HandleNULL, //493
&AuraEffect::HandleNULL, //494 SPELL_AURA_SET_POWER_POINT_CHARGE
&AuraEffect::HandleNULL, //495 SPELL_AURA_TRIGGER_SPELL_ON_EXPIRE
&AuraEffect::HandleTriggerSpellOnExpire, //495 SPELL_AURA_TRIGGER_SPELL_ON_EXPIRE
&AuraEffect::HandleNULL, //496 SPELL_AURA_ALLOW_CHANGING_EQUIPMENT_IN_TORGHAST
&AuraEffect::HandleNULL, //497 SPELL_AURA_MOD_ANIMA_GAIN
&AuraEffect::HandleNULL, //498 SPELL_AURA_CURRENCY_LOSS_PCT_ON_DEATH
@@ -4998,6 +4998,14 @@ void AuraEffect::HandleTriggerSpellOnPowerAmount(AuraApplication const* aurApp,
target->CastSpell(target, triggerSpell, this);
}
void AuraEffect::HandleTriggerSpellOnExpire(AuraApplication const* aurApp, uint8 mode, bool apply) const
{
if (!(mode & AURA_EFFECT_HANDLE_REAL) || apply || aurApp->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
return;
aurApp->GetTarget()->CastSpell(aurApp->GetTarget(), GetSpellEffectInfo().TriggerSpell, this);
}
void AuraEffect::HandleAuraOpenStable(AuraApplication const* aurApp, uint8 mode, bool apply) const
{
if (!(mode & AURA_EFFECT_HANDLE_REAL))

View File

@@ -320,6 +320,7 @@ class TC_GAME_API AuraEffect
void HandleBattlegroundPlayerPosition(AuraApplication const* aurApp, uint8 mode, bool apply) const;
void HandleTriggerSpellOnPowerAmount(AuraApplication const* aurApp, uint8 mode, bool apply) const;
void HandleTriggerSpellOnPowerPercent(AuraApplication const* aurApp, uint8 mode, bool apply) const;
void HandleTriggerSpellOnExpire(AuraApplication const* aurApp, uint8 mode, bool apply) const;
void HandleStoreTeleportReturnPoint(AuraApplication const* aurApp, uint8 mode, bool apply) const;
void HandleMountRestrictions(AuraApplication const* aurApp, uint8 mode, bool apply) const;
void HandleCosmeticMounted(AuraApplication const* aurApp, uint8 mode, bool apply) const;