summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/sql/updates/pending_db_world/rev_1731586109166584600.sql6
-rw-r--r--src/server/scripts/Spells/spell_item.cpp22
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);
}