diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_paladin.cpp | 74 |
1 files changed, 20 insertions, 54 deletions
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index 0463245536f..1a18919faef 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -351,32 +351,20 @@ class spell_pal_blessing_of_protection : public SpellScript return ValidateSpellInfo( { SPELL_PALADIN_FORBEARANCE, - // uncomment when we have serverside only spells - //SPELL_PALADIN_IMMUNE_SHIELD_MARKER + SPELL_PALADIN_IMMUNE_SHIELD_MARKER }) && spellInfo->ExcludeTargetAuraSpell == SPELL_PALADIN_IMMUNE_SHIELD_MARKER; } - SpellCastResult CheckForbearance() - { - Unit* target = GetExplTargetUnit(); - if (!target || target->HasAura(SPELL_PALADIN_FORBEARANCE)) - return SPELL_FAILED_TARGET_AURASTATE; - - return SPELL_CAST_OK; - } - - void TriggerForbearance() + void TriggerForbearance() const { - if (Unit* target = GetHitUnit()) - { - GetCaster()->CastSpell(target, SPELL_PALADIN_FORBEARANCE, true); - GetCaster()->CastSpell(target, SPELL_PALADIN_IMMUNE_SHIELD_MARKER, true); - } + GetCaster()->CastSpell(GetHitUnit(), SPELL_PALADIN_FORBEARANCE, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringSpell = GetSpell() + }); } void Register() override { - OnCheckCast += SpellCheckCastFn(spell_pal_blessing_of_protection::CheckForbearance); AfterHit += SpellHitFn(spell_pal_blessing_of_protection::TriggerForbearance); } }; @@ -544,37 +532,28 @@ class spell_pal_divine_shield : public SpellScript SPELL_PALADIN_FINAL_STAND, SPELL_PALADIN_FINAL_STAND_EFFECT, SPELL_PALADIN_FORBEARANCE, - // uncomment when we have serverside only spells - //SPELL_PALADIN_IMMUNE_SHIELD_MARKER + SPELL_PALADIN_IMMUNE_SHIELD_MARKER }) && spellInfo->ExcludeCasterAuraSpell == SPELL_PALADIN_IMMUNE_SHIELD_MARKER; } - SpellCastResult CheckForbearance() - { - if (GetCaster()->HasAura(SPELL_PALADIN_FORBEARANCE)) - return SPELL_FAILED_TARGET_AURASTATE; - - return SPELL_CAST_OK; - } - void HandleFinalStand() { if (GetCaster()->HasAura(SPELL_PALADIN_FINAL_STAND)) GetCaster()->CastSpell(nullptr, SPELL_PALADIN_FINAL_STAND_EFFECT, true); } - void TriggerForbearance() + void TriggerForbearance() const { - Unit* caster = GetCaster(); - caster->CastSpell(caster, SPELL_PALADIN_FORBEARANCE, true); - caster->CastSpell(caster, SPELL_PALADIN_IMMUNE_SHIELD_MARKER, true); + GetCaster()->CastSpell(GetHitUnit(), SPELL_PALADIN_FORBEARANCE, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringSpell = GetSpell() + }); } void Register() override { - OnCheckCast += SpellCheckCastFn(spell_pal_divine_shield::CheckForbearance); AfterCast += SpellCastFn(spell_pal_divine_shield::HandleFinalStand); - AfterCast += SpellCastFn(spell_pal_divine_shield::TriggerForbearance); + AfterHit += SpellHitFn(spell_pal_divine_shield::TriggerForbearance); } }; @@ -1264,35 +1243,22 @@ class spell_pal_item_t6_trinket : public AuraScript // 471195 - Lay on Hands (from 387791 - Empyreal Ward) class spell_pal_lay_on_hands : public SpellScript { - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_FORBEARANCE, SPELL_PALADIN_IMMUNE_SHIELD_MARKER }); - } - - SpellCastResult CheckForbearance() const + bool Validate(SpellInfo const* spellInfo) override { - Unit* target = GetExplTargetUnit(); - if (!target || target->HasAura(SPELL_PALADIN_FORBEARANCE)) - return SPELL_FAILED_TARGET_AURASTATE; - - return SPELL_CAST_OK; + return ValidateSpellInfo({ SPELL_PALADIN_FORBEARANCE }) + && spellInfo->ExcludeTargetAuraSpell == SPELL_PALADIN_IMMUNE_SHIELD_MARKER; } void TriggerForbearance() const { - if (Unit* target = GetHitUnit()) - { - CastSpellExtraArgs args(TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR); - args.SetTriggeringSpell(GetSpell()); - - GetCaster()->CastSpell(target, SPELL_PALADIN_FORBEARANCE, args); - GetCaster()->CastSpell(target, SPELL_PALADIN_IMMUNE_SHIELD_MARKER, args); - } + GetCaster()->CastSpell(GetHitUnit(), SPELL_PALADIN_FORBEARANCE, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringSpell = GetSpell() + }); } void Register() override { - OnCheckCast += SpellCheckCastFn(spell_pal_lay_on_hands::CheckForbearance); AfterHit += SpellHitFn(spell_pal_lay_on_hands::TriggerForbearance); } }; |