Skip to content

Commit d1a2f20

Browse files
authored
Scripts/Spells: Migrate some spell linked spells to spell scripts (#31279)
1 parent 899ac9e commit d1a2f20

File tree

17 files changed

+915
-24
lines changed

17 files changed

+915
-24
lines changed
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
--
2+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 70653;
3+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_dragonblight_lich_king_zap_player';
4+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
5+
(70653, 'spell_dragonblight_lich_king_zap_player');
6+
7+
--
8+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (69377,69378,69381);
9+
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
10+
'spell_item_runescroll_of_fortitude',
11+
'spell_item_drums_of_forgotten_kings',
12+
'spell_item_drums_of_the_wild');
13+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
14+
(69377, 'spell_item_runescroll_of_fortitude'),
15+
(69378, 'spell_item_drums_of_forgotten_kings'),
16+
(69381, 'spell_item_drums_of_the_wild');
17+
18+
--
19+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 61613;
20+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_grizzly_hills_ganjo_ressurection';
21+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
22+
(61613, 'spell_grizzly_hills_ganjo_ressurection');
23+
24+
--
25+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 45661;
26+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_felmyst_encapsulate';
27+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
28+
(45661, 'spell_felmyst_encapsulate');
29+
30+
--
31+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (32096,32098);
32+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_item_thrallmar_and_honor_hold_favor';
33+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
34+
(32096, 'spell_item_thrallmar_and_honor_hold_favor'),
35+
(32098, 'spell_item_thrallmar_and_honor_hold_favor');
36+
37+
-- Creature 11350
38+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 24071;
39+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_zulgurub_axe_flurry';
40+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
41+
(24019, 'spell_zulgurub_axe_flurry');
42+
43+
-- Creature 15547
44+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 29320;
45+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_karazhan_charge';
46+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
47+
(29320, 'spell_karazhan_charge');
48+
49+
--
50+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 39835;
51+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_najentus_needle_spine_explosion';
52+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
53+
(39835, 'spell_najentus_needle_spine_explosion');
54+
55+
--
56+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 45980;
57+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_borean_tundra_re_cursive_transmatter_injection';
58+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
59+
(45980, 'spell_borean_tundra_re_cursive_transmatter_injection');
60+
61+
--
62+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 47585;
63+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_pri_dispersion';
64+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
65+
(47585, 'spell_pri_dispersion');
66+
67+
--
68+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 49039;
69+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_dk_lichborne';
70+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
71+
(49039, 'spell_dk_lichborne');
72+
73+
--
74+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (15237,15430,15431,25331,27799,27800,27801,48077,48078);
75+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_pri_holy_nova';
76+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
77+
(-15237, 'spell_pri_holy_nova');
78+
79+
--
80+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (45719,46651);
81+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_midsummer_remove_torches';
82+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
83+
(46074, 'spell_midsummer_remove_torches');
84+
85+
--
86+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (45716,46630,-45716,-46630);
87+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_midsummer_torch_tossing_training_practice';
88+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
89+
(45716, 'spell_midsummer_torch_tossing_training_practice'),
90+
(46630, 'spell_midsummer_torch_tossing_training_practice');
91+
92+
--
93+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (65684,67176,67177,67178,65686,67222,67223,67224);
94+
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
95+
'spell_twin_valkyr_dark_essence',
96+
'spell_twin_valkyr_light_essence');
97+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
98+
(65684, 'spell_twin_valkyr_dark_essence'),
99+
(67176, 'spell_twin_valkyr_dark_essence'),
100+
(67177, 'spell_twin_valkyr_dark_essence'),
101+
(67178, 'spell_twin_valkyr_dark_essence'),
102+
(65686, 'spell_twin_valkyr_light_essence'),
103+
(67222, 'spell_twin_valkyr_light_essence'),
104+
(67223, 'spell_twin_valkyr_light_essence'),
105+
(67224, 'spell_twin_valkyr_light_essence');
106+
107+
--
108+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 55814;
109+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_eck_spit';
110+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
111+
(55814, 'spell_eck_spit');
112+
113+
--
114+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (53288,53311);
115+
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
116+
'spell_grizzly_hills_flight_onequah_to_lights_breach',
117+
'spell_grizzly_hills_flight_westfall_to_lights_breach');
118+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
119+
(53288, 'spell_grizzly_hills_flight_onequah_to_lights_breach'),
120+
(53311, 'spell_grizzly_hills_flight_westfall_to_lights_breach');
121+
122+
--
123+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (55428,55480,55500,55501,55502,55503);
124+
125+
--
126+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 57387;
127+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_icecrown_argent_cannon_assault';
128+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
129+
(57387, 'spell_icecrown_argent_cannon_assault');
130+
131+
--
132+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 57787;
133+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_icecrown_forcecast_bridenbrad_ascension';
134+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
135+
(57787, 'spell_icecrown_forcecast_bridenbrad_ascension');
136+
137+
UPDATE `creature_template` SET `AIName` = '' WHERE `entry` = 30562;
138+
DELETE FROM `smart_scripts` WHERE `entryorguid` = 30562 AND `source_type` = 0;
139+
140+
--
141+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = -57350;
142+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_item_darkmoon_card_illusion';
143+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
144+
(57350, 'spell_item_darkmoon_card_illusion');
145+
146+
--
147+
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = -38708;
148+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_hellfire_peninsula_demonaic_visitation';
149+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
150+
(38708, 'spell_hellfire_peninsula_demonaic_visitation');

src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ EndContentData */
3737
#include "Player.h"
3838
#include "ScriptedEscortAI.h"
3939
#include "ScriptedGossip.h"
40+
#include "SpellScript.h"
4041
#include "TemporarySummon.h"
4142

4243
enum Spells
@@ -619,8 +620,35 @@ class npc_image_of_medivh : public CreatureScript
619620
};
620621
};
621622

623+
enum KarazhanCharge
624+
{
625+
SPELL_FEAR = 29321
626+
};
627+
628+
// 29320 - Charge
629+
class spell_karazhan_charge : public SpellScript
630+
{
631+
PrepareSpellScript(spell_karazhan_charge);
632+
633+
bool Validate(SpellInfo const* /*spellInfo*/) override
634+
{
635+
return ValidateSpellInfo({ SPELL_FEAR });
636+
}
637+
638+
void HandleAfterHit()
639+
{
640+
GetCaster()->CastSpell(GetCaster(), SPELL_FEAR);
641+
}
642+
643+
void Register() override
644+
{
645+
AfterHit += SpellHitFn(spell_karazhan_charge::HandleAfterHit);
646+
}
647+
};
648+
622649
void AddSC_karazhan()
623650
{
624651
new npc_barnes();
625652
new npc_image_of_medivh();
653+
RegisterSpellScript(spell_karazhan_charge);
626654
}

src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ EndScriptData */
2727
#include "ObjectAccessor.h"
2828
#include "ScriptedCreature.h"
2929
#include "SpellInfo.h"
30+
#include "SpellScript.h"
3031
#include "sunwell_plateau.h"
3132
#include "TemporarySummon.h"
3233

@@ -52,8 +53,6 @@ enum Spells
5253
SPELL_CORROSION = 45866,
5354
SPELL_GAS_NOVA = 45855,
5455
SPELL_ENCAPSULATE_CHANNEL = 45661,
55-
// SPELL_ENCAPSULATE_EFFECT = 45665,
56-
// SPELL_ENCAPSULATE_AOE = 45662,
5756

5857
//Flight phase
5958
SPELL_VAPOR_SELECT = 45391, // fel to player, force cast 45392, 50000y selete target
@@ -82,7 +81,10 @@ enum Spells
8281
//Other
8382
SPELL_BERSERK = 45078,
8483
SPELL_CLOUD_VISUAL = 45212,
85-
SPELL_CLOUD_SUMMON = 45884
84+
SPELL_CLOUD_SUMMON = 45884,
85+
86+
// Scripts
87+
SPELL_ENCAPSULATE_EFFECT = 45665
8688
};
8789

8890
enum PhaseFelmyst
@@ -544,9 +546,31 @@ struct npc_felmyst_trail : public ScriptedAI
544546
void UpdateAI(uint32 /*diff*/) override { }
545547
};
546548

549+
// 45661 - Encapsulate
550+
class spell_felmyst_encapsulate : public SpellScript
551+
{
552+
PrepareSpellScript(spell_felmyst_encapsulate);
553+
554+
bool Validate(SpellInfo const* /*spellInfo*/) override
555+
{
556+
return ValidateSpellInfo({ SPELL_ENCAPSULATE_EFFECT });
557+
}
558+
559+
void HandleAfterHit()
560+
{
561+
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_ENCAPSULATE_EFFECT, true);
562+
}
563+
564+
void Register() override
565+
{
566+
AfterHit += SpellHitFn(spell_felmyst_encapsulate::HandleAfterHit);
567+
}
568+
};
569+
547570
void AddSC_boss_felmyst()
548571
{
549572
RegisterSunwellPlateauCreatureAI(boss_felmyst);
550573
RegisterSunwellPlateauCreatureAI(npc_felmyst_vapor);
551574
RegisterSunwellPlateauCreatureAI(npc_felmyst_trail);
575+
RegisterSpellScript(spell_felmyst_encapsulate);
552576
}

src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,35 @@ class spell_zulgurub_poisonous_blood : public SpellScript
102102
}
103103
};
104104

105+
enum AxeFlurry
106+
{
107+
SPELL_AXE_FLURRY = 24020
108+
};
109+
110+
// 24019 - Axe Flurry
111+
class spell_zulgurub_axe_flurry : public SpellScript
112+
{
113+
PrepareSpellScript(spell_zulgurub_axe_flurry);
114+
115+
bool Validate(SpellInfo const* /*spellInfo*/) override
116+
{
117+
return ValidateSpellInfo({ SPELL_AXE_FLURRY });
118+
}
119+
120+
void HandleDummy(SpellEffIndex /*effIndex*/)
121+
{
122+
GetCaster()->CastSpell(GetHitUnit(), SPELL_AXE_FLURRY, true);
123+
}
124+
125+
void Register() override
126+
{
127+
OnEffectHitTarget += SpellEffectFn(spell_zulgurub_axe_flurry::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
128+
}
129+
};
130+
105131
void AddSC_zulgurub()
106132
{
107133
new go_brazier_of_madness();
108134
RegisterSpellScript(spell_zulgurub_poisonous_blood);
135+
RegisterSpellScript(spell_zulgurub_axe_flurry);
109136
}

0 commit comments

Comments
 (0)