aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/Spells/spell_druid.cpp611
1 files changed, 245 insertions, 366 deletions
diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp
index 48c77e2eb33..4094e99b187 100644
--- a/src/server/scripts/Spells/spell_druid.cpp
+++ b/src/server/scripts/Spells/spell_druid.cpp
@@ -277,31 +277,20 @@ class spell_dru_cat_form : public AuraScript
};
// 1850 - Dash
-class spell_dru_dash : public SpellScriptLoader
+class spell_dru_dash : public AuraScript
{
-public:
- spell_dru_dash() : SpellScriptLoader("spell_dru_dash") { }
+ PrepareAuraScript(spell_dru_dash);
- class spell_dru_dash_AuraScript : public AuraScript
+ void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
{
- PrepareAuraScript(spell_dru_dash_AuraScript);
-
- void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
- {
- // do not set speed if not in cat form
- if (GetUnitOwner()->GetShapeshiftForm() != FORM_CAT_FORM)
- amount = 0;
- }
-
- void Register() override
- {
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_dash_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_MOD_INCREASE_SPEED);
- }
- };
+ // do not set speed if not in cat form
+ if (GetUnitOwner()->GetShapeshiftForm() != FORM_CAT_FORM)
+ amount = 0;
+ }
- AuraScript* GetAuraScript() const override
+ void Register() override
{
- return new spell_dru_dash_AuraScript();
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_dash::CalculateAmount, EFFECT_0, SPELL_AURA_MOD_INCREASE_SPEED);
}
};
@@ -539,119 +528,97 @@ private:
};
// -33943 - Flight Form
-class spell_dru_flight_form : public SpellScriptLoader
+class spell_dru_flight_form : public SpellScript
{
-public:
- spell_dru_flight_form() : SpellScriptLoader("spell_dru_flight_form") { }
+ PrepareSpellScript(spell_dru_flight_form);
- class spell_dru_flight_form_SpellScript : public SpellScript
+ SpellCastResult CheckCast()
{
- PrepareSpellScript(spell_dru_flight_form_SpellScript);
-
- SpellCastResult CheckCast()
- {
- Unit* caster = GetCaster();
- if (caster->IsInDisallowedMountForm())
- return SPELL_FAILED_NOT_SHAPESHIFT;
-
- return SPELL_CAST_OK;
- }
+ Unit* caster = GetCaster();
+ if (caster->IsInDisallowedMountForm())
+ return SPELL_FAILED_NOT_SHAPESHIFT;
- void Register() override
- {
- OnCheckCast += SpellCheckCastFn(spell_dru_flight_form_SpellScript::CheckCast);
- }
- };
+ return SPELL_CAST_OK;
+ }
- SpellScript* GetSpellScript() const override
+ void Register() override
{
- return new spell_dru_flight_form_SpellScript();
+ OnCheckCast += SpellCheckCastFn(spell_dru_flight_form::CheckCast);
}
};
// 37336 - Druid Forms Trinket
-class spell_dru_forms_trinket : public SpellScriptLoader
+class spell_dru_forms_trinket : public AuraScript
{
-public:
- spell_dru_forms_trinket() : SpellScriptLoader("spell_dru_forms_trinket") { }
+ PrepareAuraScript(spell_dru_forms_trinket);
- class spell_dru_forms_trinket_AuraScript : public AuraScript
+ bool Validate(SpellInfo const* /*spellInfo*/) override
{
- PrepareAuraScript(spell_dru_forms_trinket_AuraScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo(
- {
- SPELL_DRUID_FORMS_TRINKET_BEAR,
- SPELL_DRUID_FORMS_TRINKET_CAT,
- SPELL_DRUID_FORMS_TRINKET_MOONKIN,
- SPELL_DRUID_FORMS_TRINKET_NONE,
- SPELL_DRUID_FORMS_TRINKET_TREE
- });
- }
-
- bool CheckProc(ProcEventInfo& eventInfo)
+ return ValidateSpellInfo(
{
- Unit* target = eventInfo.GetActor();
-
- switch (target->GetShapeshiftForm())
- {
- case FORM_BEAR_FORM:
- case FORM_DIRE_BEAR_FORM:
- case FORM_CAT_FORM:
- case FORM_MOONKIN_FORM:
- case FORM_NONE:
- case FORM_TREE_OF_LIFE:
- return true;
- default:
- break;
- }
+ SPELL_DRUID_FORMS_TRINKET_BEAR,
+ SPELL_DRUID_FORMS_TRINKET_CAT,
+ SPELL_DRUID_FORMS_TRINKET_MOONKIN,
+ SPELL_DRUID_FORMS_TRINKET_NONE,
+ SPELL_DRUID_FORMS_TRINKET_TREE
+ });
+ }
- return false;
- }
+ bool CheckProc(ProcEventInfo& eventInfo)
+ {
+ Unit* target = eventInfo.GetActor();
- void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ switch (target->GetShapeshiftForm())
{
- PreventDefaultAction();
- Unit* target = eventInfo.GetActor();
- uint32 triggerspell = 0;
+ case FORM_BEAR_FORM:
+ case FORM_DIRE_BEAR_FORM:
+ case FORM_CAT_FORM:
+ case FORM_MOONKIN_FORM:
+ case FORM_NONE:
+ case FORM_TREE_OF_LIFE:
+ return true;
+ default:
+ break;
+ }
- switch (target->GetShapeshiftForm())
- {
- case FORM_BEAR_FORM:
- case FORM_DIRE_BEAR_FORM:
- triggerspell = SPELL_DRUID_FORMS_TRINKET_BEAR;
- break;
- case FORM_CAT_FORM:
- triggerspell = SPELL_DRUID_FORMS_TRINKET_CAT;
- break;
- case FORM_MOONKIN_FORM:
- triggerspell = SPELL_DRUID_FORMS_TRINKET_MOONKIN;
- break;
- case FORM_NONE:
- triggerspell = SPELL_DRUID_FORMS_TRINKET_NONE;
- break;
- case FORM_TREE_OF_LIFE:
- triggerspell = SPELL_DRUID_FORMS_TRINKET_TREE;
- break;
- default:
- return;
- }
+ return false;
+ }
- target->CastSpell(target, triggerspell, aurEff);
+ void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ Unit* target = eventInfo.GetActor();
+ uint32 triggerspell = 0;
+
+ switch (target->GetShapeshiftForm())
+ {
+ case FORM_BEAR_FORM:
+ case FORM_DIRE_BEAR_FORM:
+ triggerspell = SPELL_DRUID_FORMS_TRINKET_BEAR;
+ break;
+ case FORM_CAT_FORM:
+ triggerspell = SPELL_DRUID_FORMS_TRINKET_CAT;
+ break;
+ case FORM_MOONKIN_FORM:
+ triggerspell = SPELL_DRUID_FORMS_TRINKET_MOONKIN;
+ break;
+ case FORM_NONE:
+ triggerspell = SPELL_DRUID_FORMS_TRINKET_NONE;
+ break;
+ case FORM_TREE_OF_LIFE:
+ triggerspell = SPELL_DRUID_FORMS_TRINKET_TREE;
+ break;
+ default:
+ return;
}
- void Register() override
- {
- DoCheckProc += AuraCheckProcFn(spell_dru_forms_trinket_AuraScript::CheckProc);
- OnEffectProc += AuraEffectProcFn(spell_dru_forms_trinket_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
- }
- };
+ target->CastSpell(target, triggerspell, aurEff);
+ }
- AuraScript* GetAuraScript() const override
+ void Register() override
{
- return new spell_dru_forms_trinket_AuraScript();
+ DoCheckProc += AuraCheckProcFn(spell_dru_forms_trinket::CheckProc);
+ OnEffectProc += AuraEffectProcFn(spell_dru_forms_trinket::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
}
};
@@ -716,38 +683,27 @@ class spell_dru_gore : public AuraScript
// 34246 - Idol of the Emerald Queen
// 60779 - Idol of Lush Moss
-class spell_dru_idol_lifebloom : public SpellScriptLoader
+class spell_dru_idol_lifebloom : public AuraScript
{
-public:
- spell_dru_idol_lifebloom() : SpellScriptLoader("spell_dru_idol_lifebloom") { }
+ PrepareAuraScript(spell_dru_idol_lifebloom);
- class spell_dru_idol_lifebloom_AuraScript : public AuraScript
+ void HandleEffectCalcSpellMod(AuraEffect const* aurEff, SpellModifier*& spellMod)
{
- PrepareAuraScript(spell_dru_idol_lifebloom_AuraScript);
-
- void HandleEffectCalcSpellMod(AuraEffect const* aurEff, SpellModifier*& spellMod)
- {
- if (!spellMod)
- {
- SpellModifierByClassMask* mod = new SpellModifierByClassMask(GetAura());
- mod->op = SpellModOp::PeriodicHealingAndDamage;
- mod->type = SPELLMOD_FLAT;
- mod->spellId = GetId();
- mod->mask = aurEff->GetSpellEffectInfo().SpellClassMask;
- spellMod = mod;
- }
- static_cast<SpellModifierByClassMask*>(spellMod)->value = aurEff->GetAmount() / 7;
- }
-
- void Register() override
+ if (!spellMod)
{
- DoEffectCalcSpellMod += AuraEffectCalcSpellModFn(spell_dru_idol_lifebloom_AuraScript::HandleEffectCalcSpellMod, EFFECT_0, SPELL_AURA_DUMMY);
+ SpellModifierByClassMask* mod = new SpellModifierByClassMask(GetAura());
+ mod->op = SpellModOp::PeriodicHealingAndDamage;
+ mod->type = SPELLMOD_FLAT;
+ mod->spellId = GetId();
+ mod->mask = aurEff->GetSpellEffectInfo().SpellClassMask;
+ spellMod = mod;
}
- };
+ static_cast<SpellModifierByClassMask*>(spellMod)->value = aurEff->GetAmount() / 7;
+ }
- AuraScript* GetAuraScript() const override
+ void Register() override
{
- return new spell_dru_idol_lifebloom_AuraScript();
+ DoEffectCalcSpellMod += AuraEffectCalcSpellModFn(spell_dru_idol_lifebloom::HandleEffectCalcSpellMod, EFFECT_0, SPELL_AURA_DUMMY);
}
};
@@ -759,310 +715,233 @@ protected:
};
// 29166 - Innervate
-class spell_dru_innervate : public SpellScriptLoader
+class spell_dru_innervate : public AuraScript
{
-public:
- spell_dru_innervate() : SpellScriptLoader("spell_dru_innervate") { }
+ PrepareAuraScript(spell_dru_innervate);
- class spell_dru_innervate_AuraScript : public AuraScript
+ void CalculateAmount(AuraEffect const* aurEff, int32& amount, bool& /*canBeRecalculated*/)
{
- PrepareAuraScript(spell_dru_innervate_AuraScript);
-
- void CalculateAmount(AuraEffect const* aurEff, int32& amount, bool& /*canBeRecalculated*/)
+ if (!aurEff->GetTotalTicks())
{
- if (!aurEff->GetTotalTicks())
- {
- amount = 0;
- return;
- }
-
- if (Unit* caster = GetCaster())
- amount = int32(CalculatePct(caster->GetCreatePowerValue(POWER_MANA), amount) / aurEff->GetTotalTicks());
- else
- amount = 0;
+ amount = 0;
+ return;
}
- void Register() override
- {
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_innervate_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_ENERGIZE);
- }
- };
+ if (Unit* caster = GetCaster())
+ amount = int32(CalculatePct(caster->GetCreatePowerValue(POWER_MANA), amount) / aurEff->GetTotalTicks());
+ else
+ amount = 0;
+ }
- AuraScript* GetAuraScript() const override
+ void Register() override
{
- return new spell_dru_innervate_AuraScript();
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_innervate::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_ENERGIZE);
}
};
// 40442 - Druid Tier 6 Trinket
-class spell_dru_item_t6_trinket : public SpellScriptLoader
+class spell_dru_item_t6_trinket : public AuraScript
{
-public:
- spell_dru_item_t6_trinket() : SpellScriptLoader("spell_dru_item_t6_trinket") { }
+ PrepareAuraScript(spell_dru_item_t6_trinket);
- class spell_dru_item_t6_trinket_AuraScript : public AuraScript
+ bool Validate(SpellInfo const* /*spellInfo*/) override
{
- PrepareAuraScript(spell_dru_item_t6_trinket_AuraScript);
+ return ValidateSpellInfo({
+ SPELL_DRUID_BLESSING_OF_REMULOS,
+ SPELL_DRUID_BLESSING_OF_ELUNE,
+ SPELL_DRUID_BLESSING_OF_CENARIUS
+ });
+ }
- bool Validate(SpellInfo const* /*spellInfo*/) override
+ void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ SpellInfo const* spellInfo = eventInfo.GetSpellInfo();
+ if (!spellInfo)
+ return;
+
+ uint32 spellId;
+ int32 chance;
+
+ // Starfire
+ if (spellInfo->SpellFamilyFlags[0] & 0x00000004)
{
- return ValidateSpellInfo({
- SPELL_DRUID_BLESSING_OF_REMULOS,
- SPELL_DRUID_BLESSING_OF_ELUNE,
- SPELL_DRUID_BLESSING_OF_CENARIUS
- });
+ spellId = SPELL_DRUID_BLESSING_OF_REMULOS;
+ chance = 25;
}
-
- void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ // Rejuvenation
+ else if (spellInfo->SpellFamilyFlags[0] & 0x00000010)
{
- PreventDefaultAction();
- SpellInfo const* spellInfo = eventInfo.GetSpellInfo();
- if (!spellInfo)
- return;
-
- uint32 spellId;
- int32 chance;
-
- // Starfire
- if (spellInfo->SpellFamilyFlags[0] & 0x00000004)
- {
- spellId = SPELL_DRUID_BLESSING_OF_REMULOS;
- chance = 25;
- }
- // Rejuvenation
- else if (spellInfo->SpellFamilyFlags[0] & 0x00000010)
- {
- spellId = SPELL_DRUID_BLESSING_OF_ELUNE;
- chance = 25;
- }
- // Mangle (Bear) and Mangle (Cat)
- else if (spellInfo->SpellFamilyFlags[1] & 0x00000440)
- {
- spellId = SPELL_DRUID_BLESSING_OF_CENARIUS;
- chance = 40;
- }
- else
- return;
-
- if (roll_chance_i(chance))
- eventInfo.GetActor()->CastSpell(nullptr, spellId, aurEff);
+ spellId = SPELL_DRUID_BLESSING_OF_ELUNE;
+ chance = 25;
}
-
- void Register() override
+ // Mangle (Bear) and Mangle (Cat)
+ else if (spellInfo->SpellFamilyFlags[1] & 0x00000440)
{
- OnEffectProc += AuraEffectProcFn(spell_dru_item_t6_trinket_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ spellId = SPELL_DRUID_BLESSING_OF_CENARIUS;
+ chance = 40;
}
- };
+ else
+ return;
- AuraScript* GetAuraScript() const override
+ if (roll_chance_i(chance))
+ eventInfo.GetActor()->CastSpell(nullptr, spellId, aurEff);
+ }
+
+ void Register() override
{
- return new spell_dru_item_t6_trinket_AuraScript();
+ OnEffectProc += AuraEffectProcFn(spell_dru_item_t6_trinket::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
// 33763 - Lifebloom
-class spell_dru_lifebloom : public SpellScriptLoader
+class spell_dru_lifebloom : public AuraScript
{
-public:
- spell_dru_lifebloom() : SpellScriptLoader("spell_dru_lifebloom") { }
+ PrepareAuraScript(spell_dru_lifebloom);
- class spell_dru_lifebloom_AuraScript : public AuraScript
+ bool Validate(SpellInfo const* /*spell*/) override
{
- PrepareAuraScript(spell_dru_lifebloom_AuraScript);
-
- bool Validate(SpellInfo const* /*spell*/) override
- {
- return ValidateSpellInfo({ SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, SPELL_DRUID_LIFEBLOOM_ENERGIZE });
- }
+ return ValidateSpellInfo({ SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, SPELL_DRUID_LIFEBLOOM_ENERGIZE });
+ }
- void OnRemoveEffect(Unit* target, AuraEffect const* aurEff, uint32 stack)
+ void OnRemoveEffect(Unit* target, AuraEffect const* aurEff, uint32 stack)
+ {
+ if (Unit* caster = GetCaster())
{
- if (Unit* caster = GetCaster())
+ // restore mana
+ std::vector<SpellPowerCost> costs = GetSpellInfo()->CalcPowerCost(caster, GetSpellInfo()->GetSchoolMask());
+ auto m = std::find_if(costs.begin(), costs.end(), [](SpellPowerCost const& cost) { return cost.Power == POWER_MANA; });
+ if (m != costs.end())
{
- // restore mana
- std::vector<SpellPowerCost> costs = GetSpellInfo()->CalcPowerCost(caster, GetSpellInfo()->GetSchoolMask());
- auto m = std::find_if(costs.begin(), costs.end(), [](SpellPowerCost const& cost) { return cost.Power == POWER_MANA; });
- if (m != costs.end())
- {
- CastSpellExtraArgs args(aurEff);
- args.OriginalCaster = GetCasterGUID();
- args.AddSpellBP0(m->Amount * stack / 2);
- caster->CastSpell(caster, SPELL_DRUID_LIFEBLOOM_ENERGIZE, args);
- }
+ CastSpellExtraArgs args(aurEff);
+ args.OriginalCaster = GetCasterGUID();
+ args.AddSpellBP0(m->Amount * stack / 2);
+ caster->CastSpell(caster, SPELL_DRUID_LIFEBLOOM_ENERGIZE, args);
}
-
- target->CastSpell(target, SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, CastSpellExtraArgs(aurEff)
- .SetOriginalCaster(GetCasterGUID()));
}
- void AfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
- {
- // Final heal only on duration end
- if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
- return;
+ target->CastSpell(target, SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, CastSpellExtraArgs(aurEff)
+ .SetOriginalCaster(GetCasterGUID()));
+ }
- // final heal
- OnRemoveEffect(GetUnitOwner(), aurEff, GetStackAmount());
- }
+ void AfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
+ {
+ // Final heal only on duration end
+ if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
+ return;
- void HandleDispel(DispelInfo* dispelInfo)
- {
- if (Unit* target = GetUnitOwner())
- if (AuraEffect const* aurEff = GetEffect(EFFECT_1))
- OnRemoveEffect(target, aurEff, dispelInfo->GetRemovedCharges()); // final heal
- }
+ // final heal
+ OnRemoveEffect(GetUnitOwner(), aurEff, GetStackAmount());
+ }
- void Register() override
- {
- AfterEffectRemove += AuraEffectRemoveFn(spell_dru_lifebloom_AuraScript::AfterRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
- AfterDispel += AuraDispelFn(spell_dru_lifebloom_AuraScript::HandleDispel);
- }
- };
+ void HandleDispel(DispelInfo* dispelInfo)
+ {
+ if (Unit* target = GetUnitOwner())
+ if (AuraEffect const* aurEff = GetEffect(EFFECT_1))
+ OnRemoveEffect(target, aurEff, dispelInfo->GetRemovedCharges()); // final heal
+ }
- AuraScript* GetAuraScript() const override
+ void Register() override
{
- return new spell_dru_lifebloom_AuraScript();
+ AfterEffectRemove += AuraEffectRemoveFn(spell_dru_lifebloom::AfterRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ AfterDispel += AuraDispelFn(spell_dru_lifebloom::HandleDispel);
}
};
// -48496 - Living Seed
-class spell_dru_living_seed : public SpellScriptLoader
+class spell_dru_living_seed : public AuraScript
{
-public:
- spell_dru_living_seed() : SpellScriptLoader("spell_dru_living_seed") { }
+ PrepareAuraScript(spell_dru_living_seed);
- class spell_dru_living_seed_AuraScript : public AuraScript
+ bool Validate(SpellInfo const* /*spellInfo*/) override
{
- PrepareAuraScript(spell_dru_living_seed_AuraScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_DRUID_LIVING_SEED_PROC });
- }
-
- void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
- {
- PreventDefaultAction();
+ return ValidateSpellInfo({ SPELL_DRUID_LIVING_SEED_PROC });
+ }
- HealInfo* healInfo = eventInfo.GetHealInfo();
- if (!healInfo || !healInfo->GetHeal())
- return;
+ void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
- CastSpellExtraArgs args(aurEff);
- args.AddSpellMod(SPELLVALUE_BASE_POINT0, CalculatePct(healInfo->GetHeal(), aurEff->GetAmount()));
- GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_DRUID_LIVING_SEED_PROC, args);
- }
+ HealInfo* healInfo = eventInfo.GetHealInfo();
+ if (!healInfo || !healInfo->GetHeal())
+ return;
- void Register() override
- {
- OnEffectProc += AuraEffectProcFn(spell_dru_living_seed_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
- };
+ CastSpellExtraArgs args(aurEff);
+ args.AddSpellMod(SPELLVALUE_BASE_POINT0, CalculatePct(healInfo->GetHeal(), aurEff->GetAmount()));
+ GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_DRUID_LIVING_SEED_PROC, args);
+ }
- AuraScript* GetAuraScript() const override
+ void Register() override
{
- return new spell_dru_living_seed_AuraScript();
+ OnEffectProc += AuraEffectProcFn(spell_dru_living_seed::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
// 48504 - Living Seed (Proc)
-class spell_dru_living_seed_proc : public SpellScriptLoader
+class spell_dru_living_seed_proc : public AuraScript
{
-public:
- spell_dru_living_seed_proc() : SpellScriptLoader("spell_dru_living_seed_proc") { }
+ PrepareAuraScript(spell_dru_living_seed_proc);
- class spell_dru_living_seed_proc_AuraScript : public AuraScript
+ bool Validate(SpellInfo const* /*spellInfo*/) override
{
- PrepareAuraScript(spell_dru_living_seed_proc_AuraScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_DRUID_LIVING_SEED_HEAL });
- }
-
- void HandleProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/)
- {
- PreventDefaultAction();
- CastSpellExtraArgs args(aurEff);
- args.AddSpellMod(SPELLVALUE_BASE_POINT0, aurEff->GetAmount());
- GetTarget()->CastSpell(GetTarget(), SPELL_DRUID_LIVING_SEED_HEAL, args);
- }
+ return ValidateSpellInfo({ SPELL_DRUID_LIVING_SEED_HEAL });
+ }
- void Register() override
- {
- OnEffectProc += AuraEffectProcFn(spell_dru_living_seed_proc_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
- };
+ void HandleProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/)
+ {
+ PreventDefaultAction();
+ CastSpellExtraArgs args(aurEff);
+ args.AddSpellMod(SPELLVALUE_BASE_POINT0, aurEff->GetAmount());
+ GetTarget()->CastSpell(GetTarget(), SPELL_DRUID_LIVING_SEED_HEAL, args);
+ }
- AuraScript* GetAuraScript() const override
+ void Register() override
{
- return new spell_dru_living_seed_proc_AuraScript();
+ OnEffectProc += AuraEffectProcFn(spell_dru_living_seed_proc::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
// 8921 - Moonfire
-class spell_dru_moonfire : public SpellScriptLoader
+class spell_dru_moonfire : public SpellScript
{
-public:
- spell_dru_moonfire() : SpellScriptLoader("spell_dru_moonfire") { }
+ PrepareSpellScript(spell_dru_moonfire);
- class spell_dru_moonfire_SpellScript : public SpellScript
+ bool Validate(SpellInfo const* /*spellInfo*/) override
{
- PrepareSpellScript(spell_dru_moonfire_SpellScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_DRUID_MOONFIRE_DAMAGE });
- }
-
- void HandleOnHit(SpellEffIndex /*effIndex*/)
- {
- GetCaster()->CastSpell(GetHitUnit(), SPELL_DRUID_MOONFIRE_DAMAGE, true);
- }
+ return ValidateSpellInfo({ SPELL_DRUID_MOONFIRE_DAMAGE });
+ }
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_dru_moonfire_SpellScript::HandleOnHit, EFFECT_0, SPELL_EFFECT_DUMMY);
- }
- };
+ void HandleOnHit(SpellEffIndex /*effIndex*/)
+ {
+ GetCaster()->CastSpell(GetHitUnit(), SPELL_DRUID_MOONFIRE_DAMAGE, true);
+ }
- SpellScript* GetSpellScript() const override
+ void Register() override
{
- return new spell_dru_moonfire_SpellScript();
+ OnEffectHitTarget += SpellEffectFn(spell_dru_moonfire::HandleOnHit, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
// 16864 - Omen of Clarity
-class spell_dru_omen_of_clarity : public SpellScriptLoader
+class spell_dru_omen_of_clarity : public AuraScript
{
-public:
- spell_dru_omen_of_clarity() : SpellScriptLoader("spell_dru_omen_of_clarity") { }
+ PrepareAuraScript(spell_dru_omen_of_clarity);
- class spell_dru_omen_of_clarity_AuraScript : public AuraScript
+ bool Validate(SpellInfo const* /*spellInfo*/) override
{
- PrepareAuraScript(spell_dru_omen_of_clarity_AuraScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_DRUID_BALANCE_T10_BONUS, SPELL_DRUID_BALANCE_T10_BONUS_PROC });
- }
-
- void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& /*eventInfo*/)
- {
- Unit* target = GetTarget();
- if (target->HasAura(SPELL_DRUID_BALANCE_T10_BONUS))
- target->CastSpell(nullptr, SPELL_DRUID_BALANCE_T10_BONUS_PROC, true);
- }
+ return ValidateSpellInfo({ SPELL_DRUID_BALANCE_T10_BONUS, SPELL_DRUID_BALANCE_T10_BONUS_PROC });
+ }
- void Register() override
- {
- OnEffectProc += AuraEffectProcFn(spell_dru_omen_of_clarity_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
- }
- };
+ void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& /*eventInfo*/)
+ {
+ Unit* target = GetTarget();
+ if (target->HasAura(SPELL_DRUID_BALANCE_T10_BONUS))
+ target->CastSpell(nullptr, SPELL_DRUID_BALANCE_T10_BONUS_PROC, true);
+ }
- AuraScript* GetAuraScript() const override
+ void Register() override
{
- return new spell_dru_omen_of_clarity_AuraScript();
+ OnEffectProc += AuraEffectProcFn(spell_dru_omen_of_clarity::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
}
};
@@ -2070,25 +1949,25 @@ void AddSC_druid_spell_scripts()
RegisterAuraScript(spell_dru_brambles);
RegisterAuraScript(spell_dru_bristling_fur);
RegisterAuraScript(spell_dru_cat_form);
- new spell_dru_dash();
+ RegisterAuraScript(spell_dru_dash);
RegisterAuraScript(spell_dru_earthwarden);
RegisterAuraScript(spell_dru_eclipse_aura);
RegisterAuraScript(spell_dru_eclipse_dummy);
RegisterAuraScript(spell_dru_eclipse_ooc);
RegisterSpellScript(spell_dru_ferocious_bite);
- new spell_dru_flight_form();
- new spell_dru_forms_trinket();
+ RegisterSpellScript(spell_dru_flight_form);
+ RegisterAuraScript(spell_dru_forms_trinket);
RegisterAuraScript(spell_dru_galactic_guardian);
RegisterAuraScript(spell_dru_gore);
- new spell_dru_idol_lifebloom();
+ RegisterAuraScript(spell_dru_idol_lifebloom);
RegisterSpellScript(spell_dru_incapacitating_roar);
- new spell_dru_innervate();
- new spell_dru_item_t6_trinket();
- new spell_dru_lifebloom();
- new spell_dru_living_seed();
- new spell_dru_living_seed_proc();
- new spell_dru_moonfire();
- new spell_dru_omen_of_clarity();
+ RegisterAuraScript(spell_dru_innervate);
+ RegisterAuraScript(spell_dru_item_t6_trinket);
+ RegisterAuraScript(spell_dru_lifebloom);
+ RegisterAuraScript(spell_dru_living_seed);
+ RegisterAuraScript(spell_dru_living_seed_proc);
+ RegisterSpellScript(spell_dru_moonfire);
+ RegisterAuraScript(spell_dru_omen_of_clarity);
new spell_dru_predatory_strikes();
RegisterSpellScript(spell_dru_prowl);
new spell_dru_rip();