diff options
-rw-r--r-- | data/sql/updates/pending_db_world/rev_1731586109166584600.sql | 6 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_item.cpp | 22 |
2 files changed, 28 insertions, 0 deletions
diff --git a/data/sql/updates/pending_db_world/rev_1731586109166584600.sql b/data/sql/updates/pending_db_world/rev_1731586109166584600.sql new file mode 100644 index 0000000000..f2d832a095 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1731586109166584600.sql @@ -0,0 +1,6 @@ +-- +DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_item_spell_reflectors'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(23132, 'spell_item_spell_reflectors'), +(23097, 'spell_item_spell_reflectors'), +(23131, 'spell_item_spell_reflectors'); diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index 90d8ceb038..1d033aeee3 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -4141,6 +4141,27 @@ class spell_item_luffa : public SpellScript } }; +// 23097 - Fire Reflector +// 23131 - Frost Reflector +// 23132 - Shadow Reflector +class spell_item_spell_reflectors: public AuraScript +{ + PrepareAuraScript(spell_item_spell_reflectors); + + void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) + { + if (GetCaster()->GetLevel() > 70) + amount = 4; + else if (GetCaster()->GetLevel() > 60) + amount = 50; + } + + void Register() override + { + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_item_spell_reflectors::CalculateAmount, EFFECT_0, SPELL_AURA_REFLECT_SPELLS_SCHOOL); + } +}; + void AddSC_item_spell_scripts() { RegisterSpellScript(spell_item_massive_seaforium_charge); @@ -4267,4 +4288,5 @@ void AddSC_item_spell_scripts() RegisterSpellScript(spell_item_gor_dreks_ointment); RegisterSpellScript(spell_item_skyguard_blasting_charges); RegisterSpellScript(spell_item_luffa); + RegisterSpellScript(spell_item_spell_reflectors); } |