aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2025-11-04 23:37:06 +0200
committerGitHub <noreply@github.com>2025-11-04 22:37:06 +0100
commitd1a2f20b56aebc220b48560dfcd0e6bb72e90f7e (patch)
tree1492bf52e03333d62853dcd41970cd4595fad6f9 /src/server/scripts/Northrend
parent899ac9e04e84192297fdd06278a8a0643f70b47d (diff)
Scripts/Spells: Migrate some spell linked spells to spell scripts (#31279)
Diffstat (limited to 'src/server/scripts/Northrend')
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp44
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_eck.cpp27
-rw-r--r--src/server/scripts/Northrend/zone_borean_tundra.cpp31
-rw-r--r--src/server/scripts/Northrend/zone_dragonblight.cpp31
-rw-r--r--src/server/scripts/Northrend/zone_grizzly_hills.cpp84
-rw-r--r--src/server/scripts/Northrend/zone_icecrown.cpp77
6 files changed, 293 insertions, 1 deletions
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index a16ba46f84d..4812a7c1d69 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -723,6 +723,48 @@ class spell_powering_up : public SpellScript
};
// 65684, 67176, 67177, 67178 - Dark Essence
+class spell_twin_valkyr_dark_essence : public AuraScript
+{
+ PrepareAuraScript(spell_twin_valkyr_dark_essence);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_LIGHT_ESSENCE });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->RemoveAurasDueToSpell(sSpellMgr->GetSpellIdForDifficulty(SPELL_LIGHT_ESSENCE, GetTarget()));
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_twin_valkyr_dark_essence::AfterApply, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+// 65686, 67222, 67223, 67224 - Light Essence
+class spell_twin_valkyr_light_essence : public AuraScript
+{
+ PrepareAuraScript(spell_twin_valkyr_light_essence);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_DARK_ESSENCE });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->RemoveAurasDueToSpell(sSpellMgr->GetSpellIdForDifficulty(SPELL_DARK_ESSENCE, GetTarget()));
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_twin_valkyr_light_essence::AfterApply, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+// 65684, 67176, 67177, 67178 - Dark Essence
// 65686, 67222, 67223, 67224 - Light Essence
class spell_valkyr_essences : public AuraScript
{
@@ -860,6 +902,8 @@ void AddSC_boss_twin_valkyr()
RegisterSpellScript(spell_bullet_controller);
RegisterSpellScript(spell_powering_up);
+ RegisterSpellScript(spell_twin_valkyr_dark_essence);
+ RegisterSpellScript(spell_twin_valkyr_light_essence);
RegisterSpellScript(spell_valkyr_essences);
RegisterSpellScript(spell_power_of_the_twins);
}
diff --git a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp
index 650704cb64d..1374f164eb3 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp
@@ -17,6 +17,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "SpellScript.h"
#include "gundrak.h"
enum Texts
@@ -30,7 +31,9 @@ enum Spells
SPELL_ECK_BITE = 55813, // Eck bites down hard, inflicting 150% of his normal damage to an enemy.
SPELL_ECK_SPIT = 55814, // Eck spits toxic bile at enemies in a cone in front of him, inflicting 2970 Nature damage and draining 220 mana every 1 sec for 3 sec.
SPELL_ECK_SPRING_1 = 55815, // Eck leaps at a distant target. --> Drops aggro and charges a random player. Tank can simply taunt him back.
- SPELL_ECK_SPRING_2 = 55837 // Eck leaps at a distant target.
+ SPELL_ECK_SPRING_2 = 55837, // Eck leaps at a distant target.
+
+ SPELL_ECK_RESIDUE = 55817
};
enum Events
@@ -108,7 +111,29 @@ private:
bool _berserk;
};
+// 55814 - Eck Spit
+class spell_eck_spit : public AuraScript
+{
+ PrepareAuraScript(spell_eck_spit);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_ECK_RESIDUE });
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_ECK_RESIDUE, true);
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_eck_spit::AfterRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
void AddSC_boss_eck()
{
RegisterGundrakCreatureAI(boss_eck);
+ RegisterSpellScript(spell_eck_spit);
}
diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp
index 838baad156b..2142d6b8577 100644
--- a/src/server/scripts/Northrend/zone_borean_tundra.cpp
+++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp
@@ -2009,6 +2009,36 @@ class spell_borean_tundra_taxi_coldarra_ledge_to_transitus_shield : public AuraS
}
};
+/*######
+## Quest 11712: Re-Cursive
+######*/
+
+enum ReCursive
+{
+ SPELL_SUMMON_FIZZCRANK_SURVIVOR = 46022
+};
+
+// 45980 - Re-Cursive Transmatter Injection
+class spell_borean_tundra_re_cursive_transmatter_injection : public SpellScript
+{
+ PrepareSpellScript(spell_borean_tundra_re_cursive_transmatter_injection);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_SUMMON_FIZZCRANK_SURVIVOR });
+ }
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ GetCaster()->CastSpell(GetCaster(), SPELL_SUMMON_FIZZCRANK_SURVIVOR);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_borean_tundra_re_cursive_transmatter_injection::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+};
+
void AddSC_borean_tundra()
{
RegisterCreatureAI(npc_beryl_sorcerer);
@@ -2044,4 +2074,5 @@ void AddSC_borean_tundra()
RegisterSpellScript(spell_borean_tundra_land_mine_barrier);
RegisterSpellScript(spell_borean_tundra_taxi_amber_ledge_to_beryl_point_platform);
RegisterSpellScript(spell_borean_tundra_taxi_coldarra_ledge_to_transitus_shield);
+ RegisterSpellScript(spell_borean_tundra_re_cursive_transmatter_injection);
}
diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp
index fec320bea96..c33babd7ea4 100644
--- a/src/server/scripts/Northrend/zone_dragonblight.cpp
+++ b/src/server/scripts/Northrend/zone_dragonblight.cpp
@@ -1095,6 +1095,36 @@ class spell_dragonblight_toaluus_spiritual_incense : public AuraScript
}
};
+/*######
+## Quest 24545: The Sacred and the Corrupt
+######*/
+
+enum TheSacredAndTheCorrupt
+{
+ SPELL_KNOCKDOWN = 13360
+};
+
+// 70653 - Lich King Zap Player
+class spell_dragonblight_lich_king_zap_player : public SpellScript
+{
+ PrepareSpellScript(spell_dragonblight_lich_king_zap_player);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_KNOCKDOWN });
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ GetHitUnit()->CastSpell(GetHitUnit(), SPELL_KNOCKDOWN, true);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_dragonblight_lich_king_zap_player::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
void AddSC_dragonblight()
{
RegisterCreatureAI(npc_commander_eligor_dawnbringer);
@@ -1118,4 +1148,5 @@ void AddSC_dragonblight()
RegisterSpellScript(spell_dragonblight_atop_the_woodlands_quest_completion_script);
RegisterSpellScript(spell_dragonblight_end_of_the_line_quest_completion_script);
RegisterSpellScript(spell_dragonblight_toaluus_spiritual_incense);
+ RegisterSpellScript(spell_dragonblight_lich_king_zap_player);
}
diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
index 32017d9f486..05b106d8027 100644
--- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
@@ -1099,6 +1099,87 @@ class spell_grizzly_hills_rage_of_jinarrak : public AuraScript
}
};
+// 61613 - Gan'jo Ressurection
+class spell_grizzly_hills_ganjo_ressurection : public SpellScript
+{
+ PrepareSpellScript(spell_grizzly_hills_ganjo_ressurection);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_ON_THE_OTHER_SIDE });
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ GetHitUnit()->RemoveAurasDueToSpell(SPELL_ON_THE_OTHER_SIDE);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_grizzly_hills_ganjo_ressurection::HandleScript, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
+ }
+};
+
+/*######
+## Creature 26853 (Makki Wintergale) (if quest 'Shifting Priorities' (12763) is completed)
+######*/
+
+enum MakkiWintergale
+{
+ SPELL_FLIGHT_ONEQUAH_TO_LIGHTS_BREACH = 53289
+};
+
+// 53288 - Flight - Onequah to Light's Breach
+class spell_grizzly_hills_flight_onequah_to_lights_breach : public AuraScript
+{
+ PrepareAuraScript(spell_grizzly_hills_flight_onequah_to_lights_breach);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_FLIGHT_ONEQUAH_TO_LIGHTS_BREACH });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_FLIGHT_ONEQUAH_TO_LIGHTS_BREACH);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_grizzly_hills_flight_onequah_to_lights_breach::AfterApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+/*######
+## Creature 26876 (Samuel Clearbook) (if quest 'Reallocating Resources' (12770) is completed)
+######*/
+
+enum SamuelClearbook
+{
+ SPELL_FLIGHT_WESTFALL_TO_LIGHTS_BREACH = 53310
+};
+
+// 53311 - Flight - Westfall to Light's Breach
+class spell_grizzly_hills_flight_westfall_to_lights_breach : public AuraScript
+{
+ PrepareAuraScript(spell_grizzly_hills_flight_westfall_to_lights_breach);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_FLIGHT_WESTFALL_TO_LIGHTS_BREACH });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_FLIGHT_WESTFALL_TO_LIGHTS_BREACH);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_grizzly_hills_flight_westfall_to_lights_breach::AfterApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
void AddSC_grizzly_hills()
{
RegisterCreatureAI(npc_emily);
@@ -1125,4 +1206,7 @@ void AddSC_grizzly_hills()
RegisterSpellScript(spell_grizzly_hills_escape_from_silverbrook_summon_worgen);
RegisterSpellScript(spell_grizzly_hills_hand_over_reins);
RegisterSpellScript(spell_grizzly_hills_rage_of_jinarrak);
+ RegisterSpellScript(spell_grizzly_hills_ganjo_ressurection);
+ RegisterSpellScript(spell_grizzly_hills_flight_onequah_to_lights_breach);
+ RegisterSpellScript(spell_grizzly_hills_flight_westfall_to_lights_breach);
}
diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp
index 006d9e31a7e..4c44123a173 100644
--- a/src/server/scripts/Northrend/zone_icecrown.cpp
+++ b/src/server/scripts/Northrend/zone_icecrown.cpp
@@ -1189,6 +1189,32 @@ class spell_icecrown_summon_soul_moveto_bunny : public SpellScript
## Quest 13086: The Last Line Of Defense
######*/
+enum TheLastLineOfDefense
+{
+ SPELL_POWERING_UP_THE_CORE = 57608
+};
+
+// 57387 - Argent Cannon Assault
+class spell_icecrown_argent_cannon_assault : public SpellScript
+{
+ PrepareSpellScript(spell_icecrown_argent_cannon_assault);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_POWERING_UP_THE_CORE });
+ }
+
+ void HandleAfterCast()
+ {
+ GetCaster()->CastSpell(GetCaster(), SPELL_POWERING_UP_THE_CORE, true);
+ }
+
+ void Register() override
+ {
+ AfterCast += SpellCastFn(spell_icecrown_argent_cannon_assault::HandleAfterCast);
+ }
+};
+
// 57385 - Argent Cannon
// 57412 - Reckoning Bomb
class spell_icecrown_cannons_target : public SpellScript
@@ -1495,6 +1521,55 @@ class spell_icecrown_burst_at_the_seams_52510 : public SpellScript
}
};
+/*######
+## Quest 13082: The Boon of A'dal
+######*/
+
+enum TheBoonOfAdal
+{
+ SPELL_SUMMON_SPIRIT_OF_BRIDENBRAD = 57747,
+ SPELL_SEE_QUEST_INVISIBILITY_1 = 57745,
+ SPELL_SUMMON_ADAL = 57746,
+ SPELL_SUMMON_MORI = 57782,
+ SPELL_SUMMON_KURI = 57786,
+ SPELL_SUMMON_LIGHT_BUNNY = 57773
+};
+
+// 57787 - Forcecast Bridenbrad Ascension
+class spell_icecrown_forcecast_bridenbrad_ascension : public SpellScript
+{
+ PrepareSpellScript(spell_icecrown_forcecast_bridenbrad_ascension);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo(
+ {
+ SPELL_SUMMON_SPIRIT_OF_BRIDENBRAD,
+ SPELL_SEE_QUEST_INVISIBILITY_1,
+ SPELL_SUMMON_ADAL,
+ SPELL_SUMMON_MORI,
+ SPELL_SUMMON_KURI,
+ SPELL_SUMMON_LIGHT_BUNNY
+ });
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit* target = GetHitUnit();
+ target->CastSpell(target, SPELL_SUMMON_SPIRIT_OF_BRIDENBRAD);
+ target->RemoveAurasDueToSpell(SPELL_SEE_QUEST_INVISIBILITY_1);
+ target->CastSpell(target, SPELL_SUMMON_ADAL);
+ target->CastSpell(target, SPELL_SUMMON_MORI);
+ target->CastSpell(target, SPELL_SUMMON_KURI);
+ target->CastSpell(target, SPELL_SUMMON_LIGHT_BUNNY);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_icecrown_forcecast_bridenbrad_ascension::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
void AddSC_icecrown()
{
RegisterCreatureAI(npc_argent_valiant);
@@ -1518,6 +1593,7 @@ void AddSC_icecrown()
RegisterSpellScript(spell_icecrown_grab_fake_soldier);
RegisterSpellScript(spell_icecrown_summon_frost_wyrm);
RegisterSpellScript(spell_icecrown_summon_soul_moveto_bunny);
+ RegisterSpellScript(spell_icecrown_argent_cannon_assault);
RegisterSpellScript(spell_icecrown_cannons_target);
RegisterSpellScript(spell_icecrown_bested_trigger);
RegisterSpellScript(spell_icecrown_burst_at_the_seams_59576);
@@ -1526,4 +1602,5 @@ void AddSC_icecrown()
RegisterSpellScript(spell_icecrown_area_restrict_abom);
RegisterSpellScript(spell_icecrown_assign_credit_to_master);
RegisterSpellScript(spell_icecrown_burst_at_the_seams_52510);
+ RegisterSpellScript(spell_icecrown_forcecast_bridenbrad_ascension);
}