aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp981
1 files changed, 393 insertions, 588 deletions
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp
index 55b41c3e63c..3d2d8dad90d 100644
--- a/src/server/scripts/Spells/spell_priest.cpp
+++ b/src/server/scripts/Spells/spell_priest.cpp
@@ -95,286 +95,278 @@ enum MiscSpells
SPELL_GEN_REPLENISHMENT = 57669
};
-class PowerCheck
+class RaidCheck
{
public:
- explicit PowerCheck(Powers const power) : _power(power) { }
+ explicit RaidCheck(Unit const* caster) : _caster(caster) { }
bool operator()(WorldObject* obj) const
{
if (Unit* target = obj->ToUnit())
- return target->GetPowerType() != _power;
+ return !_caster->IsInRaidWith(target);
return true;
}
private:
- Powers const _power;
+ Unit const* _caster;
};
-class RaidCheck
+// 121536 - Angelic Feather talent
+class spell_pri_angelic_feather_trigger : public SpellScript
{
- public:
- explicit RaidCheck(Unit const* caster) : _caster(caster) { }
+ PrepareSpellScript(spell_pri_angelic_feather_trigger);
- bool operator()(WorldObject* obj) const
- {
- if (Unit* target = obj->ToUnit())
- return !_caster->IsInRaidWith(target);
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PRIEST_ANGELIC_FEATHER_AREATRIGGER });
+ }
- return true;
+ void HandleEffectDummy(SpellEffIndex /*effIndex*/)
+ {
+ Position destPos = GetHitDest()->GetPosition();
+ float radius = GetEffectInfo().CalcRadius();
+
+ // Caster is prioritary
+ if (GetCaster()->IsWithinDist2d(&destPos, radius))
+ {
+ GetCaster()->CastSpell(GetCaster(), SPELL_PRIEST_ANGELIC_FEATHER_AURA, true);
}
+ else
+ {
+ CastSpellExtraArgs args;
+ args.TriggerFlags = TRIGGERED_FULL_MASK;
+ args.CastDifficulty = GetCastDifficulty();
+ GetCaster()->CastSpell(destPos, SPELL_PRIEST_ANGELIC_FEATHER_AREATRIGGER, args);
+ }
+ }
- private:
- Unit const* _caster;
+ void Register() override
+ {
+ OnEffectHit += SpellEffectFn(spell_pri_angelic_feather_trigger::HandleEffectDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
};
-// 26169 - Oracle Healing Bonus
-class spell_pri_aq_3p_bonus : public SpellScriptLoader
+// Angelic Feather areatrigger - created by SPELL_PRIEST_ANGELIC_FEATHER_AREATRIGGER
+struct areatrigger_pri_angelic_feather : AreaTriggerAI
{
- public:
- spell_pri_aq_3p_bonus() : SpellScriptLoader("spell_pri_aq_3p_bonus") { }
+ areatrigger_pri_angelic_feather(AreaTrigger* areatrigger) : AreaTriggerAI(areatrigger) { }
- class spell_pri_aq_3p_bonus_AuraScript : public AuraScript
+ // Called when the AreaTrigger has just been initialized, just before added to map
+ void OnInitialize() override
+ {
+ if (Unit* caster = at->GetCaster())
{
- PrepareAuraScript(spell_pri_aq_3p_bonus_AuraScript);
+ std::vector<AreaTrigger*> areaTriggers = caster->GetAreaTriggers(SPELL_PRIEST_ANGELIC_FEATHER_AREATRIGGER);
- bool Validate(SpellInfo const* /*spellInfo*/) override
+ if (areaTriggers.size() >= 3)
+ areaTriggers.front()->SetDuration(0);
+ }
+ }
+
+ void OnUnitEnter(Unit* unit) override
+ {
+ if (Unit* caster = at->GetCaster())
+ {
+ if (caster->IsFriendlyTo(unit))
{
- return ValidateSpellInfo({ SPELL_PRIEST_ORACULAR_HEAL });
+ // If target already has aura, increase duration to max 130% of initial duration
+ caster->CastSpell(unit, SPELL_PRIEST_ANGELIC_FEATHER_AURA, true);
+ at->SetDuration(0);
}
+ }
+ }
+};
- void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
- {
- PreventDefaultAction();
- Unit* caster = eventInfo.GetActor();
- if (caster == eventInfo.GetProcTarget())
- return;
+// 26169 - Oracle Healing Bonus
+class spell_pri_aq_3p_bonus : public AuraScript
+{
+ PrepareAuraScript(spell_pri_aq_3p_bonus);
- HealInfo* healInfo = eventInfo.GetHealInfo();
- if (!healInfo || !healInfo->GetHeal())
- return;
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PRIEST_ORACULAR_HEAL });
+ }
- CastSpellExtraArgs args(aurEff);
- args.AddSpellBP0(CalculatePct(static_cast<int32>(healInfo->GetHeal()), 10));
- caster->CastSpell(caster, SPELL_PRIEST_ORACULAR_HEAL, args);
- }
+ void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ Unit* caster = eventInfo.GetActor();
+ if (caster == eventInfo.GetProcTarget())
+ return;
- void Register() override
- {
- OnEffectProc += AuraEffectProcFn(spell_pri_aq_3p_bonus_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
- };
+ HealInfo* healInfo = eventInfo.GetHealInfo();
+ if (!healInfo || !healInfo->GetHeal())
+ return;
- AuraScript* GetAuraScript() const override
- {
- return new spell_pri_aq_3p_bonus_AuraScript();
- }
+ CastSpellExtraArgs args(aurEff);
+ args.AddSpellBP0(CalculatePct(static_cast<int32>(healInfo->GetHeal()), 10));
+ caster->CastSpell(caster, SPELL_PRIEST_ORACULAR_HEAL, args);
+ }
+
+ void Register() override
+ {
+ OnEffectProc += AuraEffectProcFn(spell_pri_aq_3p_bonus::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
};
// 81749 - Atonement
-class spell_pri_atonement : public SpellScriptLoader
+class spell_pri_atonement : public AuraScript
{
-public:
- spell_pri_atonement() : SpellScriptLoader("spell_pri_atonement") { }
+ PrepareAuraScript(spell_pri_atonement);
- class spell_pri_atonement_AuraScript : public AuraScript
+ bool Validate(SpellInfo const* spellInfo) override
{
- PrepareAuraScript(spell_pri_atonement_AuraScript);
-
- bool Validate(SpellInfo const* spellInfo) override
- {
- return ValidateSpellInfo({ SPELL_PRIEST_ATONEMENT_HEAL }) && spellInfo->GetEffects().size() > EFFECT_1;
- }
+ return ValidateSpellInfo({ SPELL_PRIEST_ATONEMENT_HEAL }) && spellInfo->GetEffects().size() > EFFECT_1;
+ }
- bool CheckProc(ProcEventInfo& eventInfo)
- {
- return eventInfo.GetDamageInfo() != nullptr;
- }
+ bool CheckProc(ProcEventInfo& eventInfo)
+ {
+ return eventInfo.GetDamageInfo() != nullptr;
+ }
- void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ DamageInfo* damageInfo = eventInfo.GetDamageInfo();
+ CastSpellExtraArgs args(aurEff);
+ args.AddSpellMod(SPELLVALUE_BASE_POINT0, CalculatePct(damageInfo->GetDamage(), aurEff->GetAmount()));
+ _appliedAtonements.erase(std::remove_if(_appliedAtonements.begin(), _appliedAtonements.end(), [this, &args](ObjectGuid const& targetGuid)
{
- DamageInfo* damageInfo = eventInfo.GetDamageInfo();
- CastSpellExtraArgs args(aurEff);
- args.AddSpellMod(SPELLVALUE_BASE_POINT0, CalculatePct(damageInfo->GetDamage(), aurEff->GetAmount()));
- _appliedAtonements.erase(std::remove_if(_appliedAtonements.begin(), _appliedAtonements.end(), [this, &args](ObjectGuid const& targetGuid)
+ if (Unit* target = ObjectAccessor::GetUnit(*GetTarget(), targetGuid))
{
- if (Unit* target = ObjectAccessor::GetUnit(*GetTarget(), targetGuid))
- {
- if (target->GetExactDist(GetTarget()) < GetEffectInfo(EFFECT_1).CalcValue())
- GetTarget()->CastSpell(target, SPELL_PRIEST_ATONEMENT_HEAL, args);
-
- return false;
- }
- return true;
- }), _appliedAtonements.end());
- }
+ if (target->GetExactDist(GetTarget()) < GetEffectInfo(EFFECT_1).CalcValue())
+ GetTarget()->CastSpell(target, SPELL_PRIEST_ATONEMENT_HEAL, args);
- void Register() override
- {
- DoCheckProc += AuraCheckProcFn(spell_pri_atonement_AuraScript::CheckProc);
- OnEffectProc += AuraEffectProcFn(spell_pri_atonement_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
+ return false;
+ }
+ return true;
+ }), _appliedAtonements.end());
+ }
- std::vector<ObjectGuid> _appliedAtonements;
+ void Register() override
+ {
+ DoCheckProc += AuraCheckProcFn(spell_pri_atonement::CheckProc);
+ OnEffectProc += AuraEffectProcFn(spell_pri_atonement::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
- public:
- void AddAtonementTarget(ObjectGuid const& target)
- {
- _appliedAtonements.push_back(target);
- }
+ std::vector<ObjectGuid> _appliedAtonements;
- void RemoveAtonementTarget(ObjectGuid const& target)
- {
- _appliedAtonements.erase(std::remove(_appliedAtonements.begin(), _appliedAtonements.end(), target), _appliedAtonements.end());
- }
- };
+public:
+ void AddAtonementTarget(ObjectGuid const& target)
+ {
+ _appliedAtonements.push_back(target);
+ }
- AuraScript* GetAuraScript() const override
+ void RemoveAtonementTarget(ObjectGuid const& target)
{
- return new spell_pri_atonement_AuraScript();
+ _appliedAtonements.erase(std::remove(_appliedAtonements.begin(), _appliedAtonements.end(), target), _appliedAtonements.end());
}
};
// 194384, 214206 - Atonement
-class spell_pri_atonement_triggered : public SpellScriptLoader
+class spell_pri_atonement_triggered : public AuraScript
{
-public:
- spell_pri_atonement_triggered() : SpellScriptLoader("spell_pri_atonement_triggered") { }
+ PrepareAuraScript(spell_pri_atonement_triggered);
- class spell_pri_atonement_triggered_AuraScript : public AuraScript
+ bool Validate(SpellInfo const* /*spellInfo*/) override
{
- PrepareAuraScript(spell_pri_atonement_triggered_AuraScript);
-
- using AtonementScript = spell_pri_atonement::spell_pri_atonement_AuraScript;
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PRIEST_ATONEMENT });
- }
-
- void HandleOnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- RegisterHelper<&AtonementScript::AddAtonementTarget>();
- }
+ return ValidateSpellInfo({ SPELL_PRIEST_ATONEMENT });
+ }
- void HandleOnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- RegisterHelper<&AtonementScript::RemoveAtonementTarget>();
- }
+ void HandleOnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ RegisterHelper<&spell_pri_atonement::AddAtonementTarget>();
+ }
- template<void(AtonementScript::*func)(ObjectGuid const&)>
- void RegisterHelper()
- {
- if (Unit* caster = GetCaster())
- if (Aura* atonement = caster->GetAura(SPELL_PRIEST_ATONEMENT))
- if (AtonementScript* script = atonement->GetScript<AtonementScript>())
- (script->*func)(GetTarget()->GetGUID());
- }
+ void HandleOnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ RegisterHelper<&spell_pri_atonement::RemoveAtonementTarget>();
+ }
- void Register() override
- {
- OnEffectApply += AuraEffectApplyFn(spell_pri_atonement_triggered_AuraScript::HandleOnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
- OnEffectRemove += AuraEffectRemoveFn(spell_pri_atonement_triggered_AuraScript::HandleOnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
- }
- };
+ template<void(spell_pri_atonement::*func)(ObjectGuid const&)>
+ void RegisterHelper()
+ {
+ if (Unit* caster = GetCaster())
+ if (Aura* atonement = caster->GetAura(SPELL_PRIEST_ATONEMENT))
+ if (spell_pri_atonement* script = atonement->GetScript<spell_pri_atonement>())
+ (script->*func)(GetTarget()->GetGUID());
+ }
- AuraScript* GetAuraScript() const override
+ void Register() override
{
- return new spell_pri_atonement_triggered_AuraScript();
+ OnEffectApply += AuraEffectApplyFn(spell_pri_atonement_triggered::HandleOnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ OnEffectRemove += AuraEffectRemoveFn(spell_pri_atonement_triggered::HandleOnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
// 64844 - Divine Hymn
-class spell_pri_divine_hymn : public SpellScriptLoader
+class spell_pri_divine_hymn : public SpellScript
{
- public:
- spell_pri_divine_hymn() : SpellScriptLoader("spell_pri_divine_hymn") { }
-
- class spell_pri_divine_hymn_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_pri_divine_hymn_SpellScript);
-
- void FilterTargets(std::list<WorldObject*>& targets)
- {
- targets.remove_if(RaidCheck(GetCaster()));
-
- uint32 const maxTargets = 3;
+ PrepareSpellScript(spell_pri_divine_hymn);
- if (targets.size() > maxTargets)
- {
- targets.sort(Trinity::HealthPctOrderPred());
- targets.resize(maxTargets);
- }
- }
+ void FilterTargets(std::list<WorldObject*>& targets)
+ {
+ targets.remove_if(RaidCheck(GetCaster()));
- void Register() override
- {
- OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pri_divine_hymn_SpellScript::FilterTargets, EFFECT_ALL, TARGET_UNIT_SRC_AREA_ALLY);
- }
- };
+ uint32 const maxTargets = 3;
- SpellScript* GetSpellScript() const override
+ if (targets.size() > maxTargets)
{
- return new spell_pri_divine_hymn_SpellScript();
+ targets.sort(Trinity::HealthPctOrderPred());
+ targets.resize(maxTargets);
}
+ }
+
+ void Register() override
+ {
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pri_divine_hymn::FilterTargets, EFFECT_ALL, TARGET_UNIT_SRC_AREA_ALLY);
+ }
};
// 47788 - Guardian Spirit
-class spell_pri_guardian_spirit : public SpellScriptLoader
+class spell_pri_guardian_spirit : public AuraScript
{
- public:
- spell_pri_guardian_spirit() : SpellScriptLoader("spell_pri_guardian_spirit") { }
-
- class spell_pri_guardian_spirit_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_pri_guardian_spirit_AuraScript);
+ PrepareAuraScript(spell_pri_guardian_spirit);
- uint32 healPct = 0;
+ uint32 healPct = 0;
- bool Validate(SpellInfo const* spellInfo) override
- {
- return ValidateSpellInfo({ SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL }) && spellInfo->GetEffects().size() > EFFECT_1;
- }
-
- bool Load() override
- {
- healPct = GetEffectInfo(EFFECT_1).CalcValue();
- return true;
- }
+ bool Validate(SpellInfo const* spellInfo) override
+ {
+ return ValidateSpellInfo({ SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL }) && spellInfo->GetEffects().size() > EFFECT_1;
+ }
- void CalculateAmount(AuraEffect const* /*aurEff*/, int32 & amount, bool & /*canBeRecalculated*/)
- {
- // Set absorbtion amount to unlimited
- amount = -1;
- }
+ bool Load() override
+ {
+ healPct = GetEffectInfo(EFFECT_1).CalcValue();
+ return true;
+ }
- void Absorb(AuraEffect* /*aurEff*/, DamageInfo & dmgInfo, uint32 & absorbAmount)
- {
- Unit* target = GetTarget();
- if (dmgInfo.GetDamage() < target->GetHealth())
- return;
+ void CalculateAmount(AuraEffect const* /*aurEff*/, int32 & amount, bool & /*canBeRecalculated*/)
+ {
+ // Set absorbtion amount to unlimited
+ amount = -1;
+ }
- int32 healAmount = int32(target->CountPctFromMaxHealth(healPct));
- // remove the aura now, we don't want 40% healing bonus
- Remove(AURA_REMOVE_BY_ENEMY_SPELL);
- CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
- args.AddSpellBP0(healAmount);
- target->CastSpell(target, SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL, args);
- absorbAmount = dmgInfo.GetDamage();
- }
+ void Absorb(AuraEffect* /*aurEff*/, DamageInfo & dmgInfo, uint32 & absorbAmount)
+ {
+ Unit* target = GetTarget();
+ if (dmgInfo.GetDamage() < target->GetHealth())
+ return;
- void Register() override
- {
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pri_guardian_spirit_AuraScript::CalculateAmount, EFFECT_1, SPELL_AURA_SCHOOL_ABSORB);
- OnEffectAbsorb += AuraEffectAbsorbFn(spell_pri_guardian_spirit_AuraScript::Absorb, EFFECT_1);
- }
- };
+ int32 healAmount = int32(target->CountPctFromMaxHealth(healPct));
+ // remove the aura now, we don't want 40% healing bonus
+ Remove(AURA_REMOVE_BY_ENEMY_SPELL);
+ CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
+ args.AddSpellBP0(healAmount);
+ target->CastSpell(target, SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL, args);
+ absorbAmount = dmgInfo.GetDamage();
+ }
- AuraScript* GetAuraScript() const override
- {
- return new spell_pri_guardian_spirit_AuraScript();
- }
+ void Register() override
+ {
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pri_guardian_spirit::CalculateAmount, EFFECT_1, SPELL_AURA_SCHOOL_ABSORB);
+ OnEffectAbsorb += AuraEffectAbsorbFn(spell_pri_guardian_spirit::Absorb, EFFECT_1);
+ }
};
// 63733 - Holy Words
@@ -445,109 +437,76 @@ class spell_pri_holy_words : public AuraScript
};
// 40438 - Priest Tier 6 Trinket
-class spell_pri_item_t6_trinket : public SpellScriptLoader
+class spell_pri_item_t6_trinket : public AuraScript
{
- public:
- spell_pri_item_t6_trinket() : SpellScriptLoader("spell_pri_item_t6_trinket") { }
+ PrepareAuraScript(spell_pri_item_t6_trinket);
- class spell_pri_item_t6_trinket_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_pri_item_t6_trinket_AuraScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PRIEST_DIVINE_BLESSING, SPELL_PRIEST_DIVINE_WRATH });
- }
-
- void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& eventInfo)
- {
- PreventDefaultAction();
- Unit* caster = eventInfo.GetActor();
- if (eventInfo.GetSpellTypeMask() & PROC_SPELL_TYPE_HEAL)
- caster->CastSpell(nullptr, SPELL_PRIEST_DIVINE_BLESSING, true);
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PRIEST_DIVINE_BLESSING, SPELL_PRIEST_DIVINE_WRATH });
+ }
- if (eventInfo.GetSpellTypeMask() & PROC_SPELL_TYPE_DAMAGE)
- caster->CastSpell(nullptr, SPELL_PRIEST_DIVINE_WRATH, true);
- }
+ void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ Unit* caster = eventInfo.GetActor();
+ if (eventInfo.GetSpellTypeMask() & PROC_SPELL_TYPE_HEAL)
+ caster->CastSpell(nullptr, SPELL_PRIEST_DIVINE_BLESSING, true);
- void Register() override
- {
- OnEffectProc += AuraEffectProcFn(spell_pri_item_t6_trinket_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
- };
+ if (eventInfo.GetSpellTypeMask() & PROC_SPELL_TYPE_DAMAGE)
+ caster->CastSpell(nullptr, SPELL_PRIEST_DIVINE_WRATH, true);
+ }
- AuraScript* GetAuraScript() const override
- {
- return new spell_pri_item_t6_trinket_AuraScript();
- }
+ void Register() override
+ {
+ OnEffectProc += AuraEffectProcFn(spell_pri_item_t6_trinket::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
};
// 92833 - Leap of Faith
-class spell_pri_leap_of_faith_effect_trigger : public SpellScriptLoader
+class spell_pri_leap_of_faith_effect_trigger : public SpellScript
{
- public:
- spell_pri_leap_of_faith_effect_trigger() : SpellScriptLoader("spell_pri_leap_of_faith_effect_trigger") { }
-
- class spell_pri_leap_of_faith_effect_trigger_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_pri_leap_of_faith_effect_trigger_SpellScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PRIEST_LEAP_OF_FAITH_EFFECT });
- }
+ PrepareSpellScript(spell_pri_leap_of_faith_effect_trigger);
- void HandleEffectDummy(SpellEffIndex /*effIndex*/)
- {
- Position destPos = GetHitDest()->GetPosition();
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PRIEST_LEAP_OF_FAITH_EFFECT });
+ }
- SpellCastTargets targets;
- targets.SetDst(destPos);
- targets.SetUnitTarget(GetCaster());
- GetHitUnit()->CastSpell(std::move(targets), GetEffectValue(), GetCastDifficulty());
- }
+ void HandleEffectDummy(SpellEffIndex /*effIndex*/)
+ {
+ Position destPos = GetHitDest()->GetPosition();
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_pri_leap_of_faith_effect_trigger_SpellScript::HandleEffectDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
- }
- };
+ SpellCastTargets targets;
+ targets.SetDst(destPos);
+ targets.SetUnitTarget(GetCaster());
+ GetHitUnit()->CastSpell(std::move(targets), GetEffectValue(), GetCastDifficulty());
+ }
- SpellScript* GetSpellScript() const override
- {
- return new spell_pri_leap_of_faith_effect_trigger_SpellScript();
- }
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_pri_leap_of_faith_effect_trigger::HandleEffectDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
};
// 1706 - Levitate
-class spell_pri_levitate : public SpellScriptLoader
+class spell_pri_levitate : public SpellScript
{
-public:
- spell_pri_levitate() : SpellScriptLoader("spell_pri_levitate") { }
+ PrepareSpellScript(spell_pri_levitate);
- class spell_pri_levitate_SpellScript : public SpellScript
+ bool Validate(SpellInfo const* /*spellInfo*/) override
{
- PrepareSpellScript(spell_pri_levitate_SpellScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PRIEST_LEVITATE_EFFECT });
- }
-
- void HandleDummy(SpellEffIndex /*effIndex*/)
- {
- GetCaster()->CastSpell(GetHitUnit(), SPELL_PRIEST_LEVITATE_EFFECT, true);
- }
+ return ValidateSpellInfo({ SPELL_PRIEST_LEVITATE_EFFECT });
+ }
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_pri_levitate_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
- }
- };
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ GetCaster()->CastSpell(GetHitUnit(), SPELL_PRIEST_LEVITATE_EFFECT, true);
+ }
- SpellScript* GetSpellScript() const override
+ void Register() override
{
- return new spell_pri_levitate_SpellScript();
+ OnEffectHitTarget += SpellEffectFn(spell_pri_levitate::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
@@ -1135,130 +1094,97 @@ class spell_pri_shadow_mend_periodic_damage : public AuraScript
};
// 28809 - Greater Heal
-class spell_pri_t3_4p_bonus : public SpellScriptLoader
+class spell_pri_t3_4p_bonus : public AuraScript
{
- public:
- spell_pri_t3_4p_bonus() : SpellScriptLoader("spell_pri_t3_4p_bonus") { }
+ PrepareAuraScript(spell_pri_t3_4p_bonus);
- class spell_pri_t3_4p_bonus_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_pri_t3_4p_bonus_AuraScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PRIEST_ARMOR_OF_FAITH });
- }
-
- void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
- {
- PreventDefaultAction();
- eventInfo.GetActor()->CastSpell(eventInfo.GetProcTarget(), SPELL_PRIEST_ARMOR_OF_FAITH, aurEff);
- }
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PRIEST_ARMOR_OF_FAITH });
+ }
- void Register() override
- {
- OnEffectProc += AuraEffectProcFn(spell_pri_t3_4p_bonus_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
- };
+ void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ eventInfo.GetActor()->CastSpell(eventInfo.GetProcTarget(), SPELL_PRIEST_ARMOR_OF_FAITH, aurEff);
+ }
- AuraScript* GetAuraScript() const override
- {
- return new spell_pri_t3_4p_bonus_AuraScript();
- }
+ void Register() override
+ {
+ OnEffectProc += AuraEffectProcFn(spell_pri_t3_4p_bonus::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
};
// 37594 - Greater Heal Refund
-class spell_pri_t5_heal_2p_bonus : public SpellScriptLoader
+class spell_pri_t5_heal_2p_bonus : public AuraScript
{
- public:
- spell_pri_t5_heal_2p_bonus() : SpellScriptLoader("spell_pri_t5_heal_2p_bonus") { }
-
- class spell_pri_t5_heal_2p_bonus_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_pri_t5_heal_2p_bonus_AuraScript);
+ PrepareAuraScript(spell_pri_t5_heal_2p_bonus);
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PRIEST_ITEM_EFFICIENCY });
- }
-
- bool CheckProc(ProcEventInfo& eventInfo)
- {
- if (HealInfo* healInfo = eventInfo.GetHealInfo())
- if (Unit* healTarget = healInfo->GetTarget())
- if (healInfo->GetEffectiveHeal())
- if (healTarget->GetHealth() >= healTarget->GetMaxHealth())
- return true;
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PRIEST_ITEM_EFFICIENCY });
+ }
- return false;
- }
+ bool CheckProc(ProcEventInfo& eventInfo)
+ {
+ if (HealInfo* healInfo = eventInfo.GetHealInfo())
+ if (Unit* healTarget = healInfo->GetTarget())
+ if (healInfo->GetEffectiveHeal())
+ if (healTarget->GetHealth() >= healTarget->GetMaxHealth())
+ return true;
- void HandleProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/)
- {
- PreventDefaultAction();
- GetTarget()->CastSpell(GetTarget(), SPELL_PRIEST_ITEM_EFFICIENCY, aurEff);
- }
+ return false;
+ }
- void Register() override
- {
- DoCheckProc += AuraCheckProcFn(spell_pri_t5_heal_2p_bonus_AuraScript::CheckProc);
- OnEffectProc += AuraEffectProcFn(spell_pri_t5_heal_2p_bonus_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
- }
- };
+ void HandleProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/)
+ {
+ PreventDefaultAction();
+ GetTarget()->CastSpell(GetTarget(), SPELL_PRIEST_ITEM_EFFICIENCY, aurEff);
+ }
- AuraScript* GetAuraScript() const override
- {
- return new spell_pri_t5_heal_2p_bonus_AuraScript();
- }
+ void Register() override
+ {
+ DoCheckProc += AuraCheckProcFn(spell_pri_t5_heal_2p_bonus::CheckProc);
+ OnEffectProc += AuraEffectProcFn(spell_pri_t5_heal_2p_bonus::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
};
// 70770 - Item - Priest T10 Healer 2P Bonus
-class spell_pri_t10_heal_2p_bonus : public SpellScriptLoader
+class spell_pri_t10_heal_2p_bonus : public AuraScript
{
- public:
- spell_pri_t10_heal_2p_bonus() : SpellScriptLoader("spell_pri_t10_heal_2p_bonus") { }
-
- class spell_pri_t10_heal_2p_bonus_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_pri_t10_heal_2p_bonus_AuraScript);
+ PrepareAuraScript(spell_pri_t10_heal_2p_bonus);
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PRIEST_BLESSED_HEALING });
- }
-
- void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
- {
- PreventDefaultAction();
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PRIEST_BLESSED_HEALING });
+ }
- HealInfo* healInfo = eventInfo.GetHealInfo();
- if (!healInfo || !healInfo->GetHeal())
- return;
+ void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
- SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(SPELL_PRIEST_BLESSED_HEALING, GetCastDifficulty());
- int32 amount = CalculatePct(static_cast<int32>(healInfo->GetHeal()), aurEff->GetAmount());
+ HealInfo* healInfo = eventInfo.GetHealInfo();
+ if (!healInfo || !healInfo->GetHeal())
+ return;
- ASSERT(spellInfo->GetMaxTicks() > 0);
- amount /= spellInfo->GetMaxTicks();
+ SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(SPELL_PRIEST_BLESSED_HEALING, GetCastDifficulty());
+ int32 amount = CalculatePct(static_cast<int32>(healInfo->GetHeal()), aurEff->GetAmount());
- Unit* caster = eventInfo.GetActor();
- Unit* target = eventInfo.GetProcTarget();
+ ASSERT(spellInfo->GetMaxTicks() > 0);
+ amount /= spellInfo->GetMaxTicks();
- CastSpellExtraArgs args(aurEff);
- args.AddSpellBP0(amount);
- caster->CastSpell(target, SPELL_PRIEST_BLESSED_HEALING, args);
- }
+ Unit* caster = eventInfo.GetActor();
+ Unit* target = eventInfo.GetProcTarget();
- void Register() override
- {
- OnEffectProc += AuraEffectProcFn(spell_pri_t10_heal_2p_bonus_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
- };
+ CastSpellExtraArgs args(aurEff);
+ args.AddSpellBP0(amount);
+ caster->CastSpell(target, SPELL_PRIEST_BLESSED_HEALING, args);
+ }
- AuraScript* GetAuraScript() const override
- {
- return new spell_pri_t10_heal_2p_bonus_AuraScript();
- }
+ void Register() override
+ {
+ OnEffectProc += AuraEffectProcFn(spell_pri_t10_heal_2p_bonus::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
};
// 109142 - Twist of Fate (Shadow)
@@ -1279,242 +1205,123 @@ class spell_pri_twist_of_fate : public AuraScript
};
// 15286 - Vampiric Embrace
-class spell_pri_vampiric_embrace : public SpellScriptLoader
+class spell_pri_vampiric_embrace : public AuraScript
{
- public:
- spell_pri_vampiric_embrace() : SpellScriptLoader("spell_pri_vampiric_embrace") { }
-
- class spell_pri_vampiric_embrace_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_pri_vampiric_embrace_AuraScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PRIEST_VAMPIRIC_EMBRACE_HEAL });
- }
+ PrepareAuraScript(spell_pri_vampiric_embrace);
- bool CheckProc(ProcEventInfo& eventInfo)
- {
- // Not proc from Mind Sear
- return !(eventInfo.GetDamageInfo()->GetSpellInfo()->SpellFamilyFlags[1] & 0x80000);
- }
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PRIEST_VAMPIRIC_EMBRACE_HEAL });
+ }
- void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
- {
- PreventDefaultAction();
- DamageInfo* damageInfo = eventInfo.GetDamageInfo();
- if (!damageInfo || !damageInfo->GetDamage())
- return;
+ bool CheckProc(ProcEventInfo& eventInfo)
+ {
+ // Not proc from Mind Sear
+ return !(eventInfo.GetDamageInfo()->GetSpellInfo()->SpellFamilyFlags[1] & 0x80000);
+ }
- int32 selfHeal = int32(CalculatePct(damageInfo->GetDamage(), aurEff->GetAmount()));
- int32 teamHeal = selfHeal / 2;
+ void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ DamageInfo* damageInfo = eventInfo.GetDamageInfo();
+ if (!damageInfo || !damageInfo->GetDamage())
+ return;
- CastSpellExtraArgs args(aurEff);
- args.AddSpellMod(SPELLVALUE_BASE_POINT0, teamHeal);
- args.AddSpellMod(SPELLVALUE_BASE_POINT1, selfHeal);
- GetTarget()->CastSpell(nullptr, SPELL_PRIEST_VAMPIRIC_EMBRACE_HEAL, args);
- }
+ int32 selfHeal = int32(CalculatePct(damageInfo->GetDamage(), aurEff->GetAmount()));
+ int32 teamHeal = selfHeal / 2;
- void Register() override
- {
- DoCheckProc += AuraCheckProcFn(spell_pri_vampiric_embrace_AuraScript::CheckProc);
- OnEffectProc += AuraEffectProcFn(spell_pri_vampiric_embrace_AuraScript::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
- };
+ CastSpellExtraArgs args(aurEff);
+ args.AddSpellMod(SPELLVALUE_BASE_POINT0, teamHeal);
+ args.AddSpellMod(SPELLVALUE_BASE_POINT1, selfHeal);
+ GetTarget()->CastSpell(nullptr, SPELL_PRIEST_VAMPIRIC_EMBRACE_HEAL, args);
+ }
- AuraScript* GetAuraScript() const override
- {
- return new spell_pri_vampiric_embrace_AuraScript();
- }
+ void Register() override
+ {
+ DoCheckProc += AuraCheckProcFn(spell_pri_vampiric_embrace::CheckProc);
+ OnEffectProc += AuraEffectProcFn(spell_pri_vampiric_embrace::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
};
// 15290 - Vampiric Embrace (heal)
-class spell_pri_vampiric_embrace_target : public SpellScriptLoader
+class spell_pri_vampiric_embrace_target : public SpellScript
{
- public:
- spell_pri_vampiric_embrace_target() : SpellScriptLoader("spell_pri_vampiric_embrace_target") { }
-
- class spell_pri_vampiric_embrace_target_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_pri_vampiric_embrace_target_SpellScript);
-
- void FilterTargets(std::list<WorldObject*>& unitList)
- {
- unitList.remove(GetCaster());
- }
+ PrepareSpellScript(spell_pri_vampiric_embrace_target);
- void Register() override
- {
- OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pri_vampiric_embrace_target_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_PARTY);
- }
- };
+ void FilterTargets(std::list<WorldObject*>& unitList)
+ {
+ unitList.remove(GetCaster());
+ }
- SpellScript* GetSpellScript() const override
- {
- return new spell_pri_vampiric_embrace_target_SpellScript();
- }
+ void Register() override
+ {
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pri_vampiric_embrace_target::FilterTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_PARTY);
+ }
};
// 34914 - Vampiric Touch
-class spell_pri_vampiric_touch : public SpellScriptLoader
+class spell_pri_vampiric_touch : public AuraScript
{
- public:
- spell_pri_vampiric_touch() : SpellScriptLoader("spell_pri_vampiric_touch") { }
-
- class spell_pri_vampiric_touch_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_pri_vampiric_touch_AuraScript);
+ PrepareAuraScript(spell_pri_vampiric_touch);
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL, SPELL_GEN_REPLENISHMENT });
- }
-
- void HandleDispel(DispelInfo* /*dispelInfo*/)
- {
- if (Unit* caster = GetCaster())
- {
- if (Unit* target = GetUnitOwner())
- {
- if (AuraEffect const* aurEff = GetEffect(EFFECT_1))
- {
- // backfire damage
- int32 bp = aurEff->GetAmount();
- bp = target->SpellDamageBonusTaken(caster, aurEff->GetSpellInfo(), bp, DOT);
- bp *= 8;
-
- CastSpellExtraArgs args(aurEff);
- args.AddSpellBP0(bp);
- caster->CastSpell(target, SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL, args);
- }
- }
- }
- }
-
- bool CheckProc(ProcEventInfo& eventInfo)
- {
- return eventInfo.GetProcTarget() == GetCaster();
- }
-
- void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
- {
- PreventDefaultAction();
- eventInfo.GetProcTarget()->CastSpell(nullptr, SPELL_GEN_REPLENISHMENT, aurEff);
- }
-
- void Register() override
- {
- AfterDispel += AuraDispelFn(spell_pri_vampiric_touch_AuraScript::HandleDispel);
- DoCheckProc += AuraCheckProcFn(spell_pri_vampiric_touch_AuraScript::CheckProc);
- OnEffectProc += AuraEffectProcFn(spell_pri_vampiric_touch_AuraScript::HandleEffectProc, EFFECT_2, SPELL_AURA_DUMMY);
- }
- };
-
- AuraScript* GetAuraScript() const override
- {
- return new spell_pri_vampiric_touch_AuraScript();
- }
-};
-
-// 121536 - Angelic Feather talent
-class spell_pri_angelic_feather_trigger : public SpellScriptLoader
-{
- public:
- spell_pri_angelic_feather_trigger() : SpellScriptLoader("spell_pri_angelic_feather_trigger") { }
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL, SPELL_GEN_REPLENISHMENT });
+ }
- class spell_pri_angelic_feather_trigger_SpellScript : public SpellScript
+ void HandleDispel(DispelInfo* /*dispelInfo*/)
+ {
+ if (Unit* caster = GetCaster())
{
- PrepareSpellScript(spell_pri_angelic_feather_trigger_SpellScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PRIEST_ANGELIC_FEATHER_AREATRIGGER });
- }
-
- void HandleEffectDummy(SpellEffIndex /*effIndex*/)
+ if (Unit* target = GetUnitOwner())
{
- Position destPos = GetHitDest()->GetPosition();
- float radius = GetEffectInfo().CalcRadius();
-
- // Caster is prioritary
- if (GetCaster()->IsWithinDist2d(&destPos, radius))
- {
- GetCaster()->CastSpell(GetCaster(), SPELL_PRIEST_ANGELIC_FEATHER_AURA, true);
- }
- else
+ if (AuraEffect const* aurEff = GetEffect(EFFECT_1))
{
- CastSpellExtraArgs args;
- args.TriggerFlags = TRIGGERED_FULL_MASK;
- args.CastDifficulty = GetCastDifficulty();
- GetCaster()->CastSpell(destPos, SPELL_PRIEST_ANGELIC_FEATHER_AREATRIGGER, args);
+ // backfire damage
+ int32 bp = aurEff->GetAmount();
+ bp = target->SpellDamageBonusTaken(caster, aurEff->GetSpellInfo(), bp, DOT);
+ bp *= 8;
+
+ CastSpellExtraArgs args(aurEff);
+ args.AddSpellBP0(bp);
+ caster->CastSpell(target, SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL, args);
}
}
-
- void Register() override
- {
- OnEffectHit += SpellEffectFn(spell_pri_angelic_feather_trigger_SpellScript::HandleEffectDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
- }
- };
-
- SpellScript* GetSpellScript() const override
- {
- return new spell_pri_angelic_feather_trigger_SpellScript();
}
-};
-
-// Angelic Feather areatrigger - created by SPELL_PRIEST_ANGELIC_FEATHER_AREATRIGGER
-class areatrigger_pri_angelic_feather : public AreaTriggerEntityScript
-{
-public:
- areatrigger_pri_angelic_feather() : AreaTriggerEntityScript("areatrigger_pri_angelic_feather") { }
+ }
- struct areatrigger_pri_angelic_featherAI : AreaTriggerAI
+ bool CheckProc(ProcEventInfo& eventInfo)
{
- areatrigger_pri_angelic_featherAI(AreaTrigger* areatrigger) : AreaTriggerAI(areatrigger) { }
-
- // Called when the AreaTrigger has just been initialized, just before added to map
- void OnInitialize() override
- {
- if (Unit* caster = at->GetCaster())
- {
- std::vector<AreaTrigger*> areaTriggers = caster->GetAreaTriggers(SPELL_PRIEST_ANGELIC_FEATHER_AREATRIGGER);
-
- if (areaTriggers.size() >= 3)
- areaTriggers.front()->SetDuration(0);
- }
- }
+ return eventInfo.GetProcTarget() == GetCaster();
+ }
- void OnUnitEnter(Unit* unit) override
- {
- if (Unit* caster = at->GetCaster())
- {
- if (caster->IsFriendlyTo(unit))
- {
- // If target already has aura, increase duration to max 130% of initial duration
- caster->CastSpell(unit, SPELL_PRIEST_ANGELIC_FEATHER_AURA, true);
- at->SetDuration(0);
- }
- }
- }
- };
+ void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ eventInfo.GetProcTarget()->CastSpell(nullptr, SPELL_GEN_REPLENISHMENT, aurEff);
+ }
- AreaTriggerAI* GetAI(AreaTrigger* areatrigger) const override
+ void Register() override
{
- return new areatrigger_pri_angelic_featherAI(areatrigger);
+ AfterDispel += AuraDispelFn(spell_pri_vampiric_touch::HandleDispel);
+ DoCheckProc += AuraCheckProcFn(spell_pri_vampiric_touch::CheckProc);
+ OnEffectProc += AuraEffectProcFn(spell_pri_vampiric_touch::HandleEffectProc, EFFECT_2, SPELL_AURA_DUMMY);
}
};
void AddSC_priest_spell_scripts()
{
- new spell_pri_aq_3p_bonus();
- new spell_pri_atonement();
- new spell_pri_atonement_triggered();
- new spell_pri_divine_hymn();
- new spell_pri_guardian_spirit();
+ RegisterSpellScript(spell_pri_angelic_feather_trigger);
+ RegisterAreaTriggerAI(areatrigger_pri_angelic_feather);
+ RegisterSpellScript(spell_pri_aq_3p_bonus);
+ RegisterSpellScript(spell_pri_atonement);
+ RegisterSpellScript(spell_pri_atonement_triggered);
+ RegisterSpellScript(spell_pri_divine_hymn);
+ RegisterSpellScript(spell_pri_guardian_spirit);
RegisterSpellScript(spell_pri_holy_words);
- new spell_pri_item_t6_trinket();
- new spell_pri_leap_of_faith_effect_trigger();
- new spell_pri_levitate();
+ RegisterSpellScript(spell_pri_item_t6_trinket);
+ RegisterSpellScript(spell_pri_leap_of_faith_effect_trigger);
+ RegisterSpellScript(spell_pri_levitate);
RegisterSpellScript(spell_pri_mind_bomb);
RegisterSpellScript(spell_pri_penance);
RegisterSpellScript(spell_pri_power_word_radiance);
@@ -1527,13 +1334,11 @@ void AddSC_priest_spell_scripts()
RegisterSpellScript(spell_pri_spirit_of_redemption);
RegisterSpellScript(spell_pri_shadow_mend);
RegisterSpellScript(spell_pri_shadow_mend_periodic_damage);
- new spell_pri_t3_4p_bonus();
- new spell_pri_t5_heal_2p_bonus();
- new spell_pri_t10_heal_2p_bonus();
+ RegisterSpellScript(spell_pri_t3_4p_bonus);
+ RegisterSpellScript(spell_pri_t5_heal_2p_bonus);
+ RegisterSpellScript(spell_pri_t10_heal_2p_bonus);
RegisterSpellScript(spell_pri_twist_of_fate);
- new spell_pri_vampiric_embrace();
- new spell_pri_vampiric_embrace_target();
- new spell_pri_vampiric_touch();
- new spell_pri_angelic_feather_trigger();
- new areatrigger_pri_angelic_feather();
+ RegisterSpellScript(spell_pri_vampiric_embrace);
+ RegisterSpellScript(spell_pri_vampiric_embrace_target);
+ RegisterSpellScript(spell_pri_vampiric_touch);
}