aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2022_07_03_01_world_mage_supernova.sql3
-rw-r--r--src/server/scripts/Spells/spell_mage.cpp22
2 files changed, 25 insertions, 0 deletions
diff --git a/sql/updates/world/master/2022_07_03_01_world_mage_supernova.sql b/sql/updates/world/master/2022_07_03_01_world_mage_supernova.sql
new file mode 100644
index 00000000000..8ee80f0f6f4
--- /dev/null
+++ b/sql/updates/world/master/2022_07_03_01_world_mage_supernova.sql
@@ -0,0 +1,3 @@
+DELETE FROM `spell_script_names` WHERE `spell_id` = 157980;
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(157980, 'spell_mage_supernova');
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp
index ff13accd597..ecd0f5a086f 100644
--- a/src/server/scripts/Spells/spell_mage.cpp
+++ b/src/server/scripts/Spells/spell_mage.cpp
@@ -1221,6 +1221,27 @@ class spell_mage_ring_of_frost_freeze_AuraScript : public AuraScript
}
};
+// 157980 - Supernova
+class spell_mage_supernova : public SpellScript
+{
+ PrepareSpellScript(spell_mage_supernova);
+
+ void HandleDamage(SpellEffIndex /*effIndex*/)
+ {
+ if (GetExplTargetUnit() == GetHitUnit())
+ {
+ uint32 damage = GetHitDamage();
+ AddPct(damage, GetEffectInfo(EFFECT_0).CalcValue());
+ SetHitDamage(damage);
+ }
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_mage_supernova::HandleDamage, EFFECT_1, SPELL_EFFECT_SCHOOL_DAMAGE);
+ }
+};
+
// 80353 - Time Warp
class spell_mage_time_warp : public SpellScript
{
@@ -1361,6 +1382,7 @@ void AddSC_mage_spell_scripts()
RegisterSpellScript(spell_mage_prismatic_barrier);
RegisterSpellScript(spell_mage_ring_of_frost);
RegisterSpellAndAuraScriptPair(spell_mage_ring_of_frost_freeze, spell_mage_ring_of_frost_freeze_AuraScript);
+ RegisterSpellScript(spell_mage_supernova);
RegisterSpellScript(spell_mage_time_warp);
RegisterSpellScript(spell_mage_touch_of_the_magi_aura);
RegisterSpellScript(spell_mage_water_elemental_freeze);