aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-02-17 19:10:03 +0100
committerShauren <shauren.trinity@gmail.com>2025-02-17 19:10:03 +0100
commitfd2574fc3cee6620f868b78ce401485a9d73585b (patch)
tree02e211c6f2bf9f00e58f5a06dc71883fbe32a7f3
parent8684e863538e7e27d78b14397ff51b18a8226060 (diff)
Scripts/Spells: Remove separate Forbearance checks from paladin scripts, not neccessary since serverside spells were reimplemented
-rw-r--r--sql/updates/world/master/2025_02_17_03_world.sql3
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp74
2 files changed, 23 insertions, 54 deletions
diff --git a/sql/updates/world/master/2025_02_17_03_world.sql b/sql/updates/world/master/2025_02_17_03_world.sql
new file mode 100644
index 00000000000..f86192a9f7f
--- /dev/null
+++ b/sql/updates/world/master/2025_02_17_03_world.sql
@@ -0,0 +1,3 @@
+DELETE FROM `spell_linked_spell` WHERE ABS(`spell_trigger`) = 25771;
+INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
+(25771, 61988, 2, 'Forbearance - link duration of serverside Divine Shield Exclude Aura ');
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);
}
};