aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/3.3.5/2025_09_09_02_world.sql291
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp70
-rw-r--r--src/server/scripts/Events/hallows_end.cpp57
-rw-r--r--src/server/scripts/Events/midsummer.cpp53
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp29
-rw-r--r--src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp60
-rw-r--r--src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp31
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp29
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp23
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp23
-rw-r--r--src/server/scripts/Northrend/zone_borean_tundra.cpp108
-rw-r--r--src/server/scripts/Northrend/zone_dragonblight.cpp62
-rw-r--r--src/server/scripts/Northrend/zone_grizzly_hills.cpp34
-rw-r--r--src/server/scripts/Northrend/zone_howling_fjord.cpp91
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp34
-rw-r--r--src/server/scripts/Northrend/zone_zuldrak.cpp127
-rw-r--r--src/server/scripts/Outland/outland_script_loader.cpp4
-rw-r--r--src/server/scripts/Outland/zone_blades_edge_mountains.cpp83
-rw-r--r--src/server/scripts/Outland/zone_zangarmarsh.cpp100
19 files changed, 1305 insertions, 4 deletions
diff --git a/sql/updates/world/3.3.5/2025_09_09_02_world.sql b/sql/updates/world/3.3.5/2025_09_09_02_world.sql
new file mode 100644
index 00000000000..2603878fe60
--- /dev/null
+++ b/sql/updates/world/3.3.5/2025_09_09_02_world.sql
@@ -0,0 +1,291 @@
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 43648;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_akilzon_electrical_storm';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(43648, 'spell_akilzon_electrical_storm');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 43658;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_akilzon_electrical_overload';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(43658, 'spell_akilzon_electrical_overload');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 45458;
+DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_midsummer_stamp_out_bonfire_quest_complete', 'spell_midsummer_stamp_out_bonfire_event');
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(45458, 'spell_midsummer_stamp_out_bonfire_quest_complete'),
+(45443, 'spell_midsummer_stamp_out_bonfire_event');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 13 AND `SourceEntry` = 46903;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,46903,0,0,31,0,5,187564,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,1,31,0,5,187914,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,2,31,0,5,187916,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,3,31,0,5,187917,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,4,31,0,5,187919,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,5,31,0,5,187920,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,6,31,0,5,187921,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,7,31,0,5,187922,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,8,31,0,5,187923,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,9,31,0,5,187924,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,10,31,0,5,187925,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,11,31,0,5,187926,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,12,31,0,5,187927,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,13,31,0,5,187928,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,14,31,0,5,187929,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,15,31,0,5,187930,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,16,31,0,5,187931,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,17,31,0,5,187932,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,18,31,0,5,187933,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,19,31,0,5,187934,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,20,31,0,5,187935,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,21,31,0,5,187936,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,22,31,0,5,187937,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,23,31,0,5,187938,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,24,31,0,5,187939,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,25,31,0,5,187940,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,26,31,0,5,187941,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,27,31,0,5,187942,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,28,31,0,5,187943,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,29,31,0,5,187944,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,30,31,0,5,187945,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,31,31,0,5,187946,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,32,31,0,5,194032,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,33,31,0,5,194035,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,34,31,0,5,194036,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,35,31,0,5,194038,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,36,31,0,5,194040,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,37,31,0,5,194044,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,38,31,0,5,194045,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,39,31,0,5,194049,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Alliance Bonfire'"),
+(13,1,46903,0,40,31,0,5,187559,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,41,31,0,5,187947,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,42,31,0,5,187948,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,43,31,0,5,187949,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,44,31,0,5,187950,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,45,31,0,5,187951,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,46,31,0,5,187952,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,47,31,0,5,187953,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,48,31,0,5,187954,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,49,31,0,5,187955,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,50,31,0,5,187956,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,51,31,0,5,187957,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,52,31,0,5,187958,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,53,31,0,5,187959,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,54,31,0,5,187960,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,55,31,0,5,187961,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,56,31,0,5,187962,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,57,31,0,5,187963,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,58,31,0,5,187964,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,59,31,0,5,187965,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,60,31,0,5,187966,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,61,31,0,5,187967,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,62,31,0,5,187968,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,63,31,0,5,187969,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,64,31,0,5,187970,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,65,31,0,5,187971,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,66,31,0,5,187972,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,67,31,0,5,187973,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,68,31,0,5,187974,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,69,31,0,5,187975,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,70,31,0,5,194033,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,71,31,0,5,194034,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,72,31,0,5,194037,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,73,31,0,5,194039,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,74,31,0,5,194042,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,75,31,0,5,194043,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,76,31,0,5,194046,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'"),
+(13,1,46903,0,77,31,0,5,194048,0,0,0,'',"Spell 'Stamp Out Bonfire (Art Kit)' (Effect 0) targets object 'Horde Bonfire'");
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 45750;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_borean_tundra_land_mine_barrier';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(45750, 'spell_borean_tundra_land_mine_barrier');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (51060,51068,51088,51094);
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_zuldrak_have_ingredient';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(51060, 'spell_zuldrak_have_ingredient'),
+(51068, 'spell_zuldrak_have_ingredient'),
+(51088, 'spell_zuldrak_have_ingredient'),
+(51094, 'spell_zuldrak_have_ingredient');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 52839;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_zuldrak_summon_escort_aura';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(52839, 'spell_zuldrak_summon_escort_aura');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 52989;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_zuldrak_akalis_stun';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(52989, 'spell_zuldrak_akalis_stun');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 53435;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_cos_teleport_to_cot_stratholme_phase_4';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(53435, 'spell_cos_teleport_to_cot_stratholme_phase_4');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = -45992;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_borean_tundra_taxi_amber_ledge_to_beryl_point_platform';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(45992, 'spell_borean_tundra_taxi_amber_ledge_to_beryl_point_platform');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = -51221;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_fjord_taxi_to_explorers_league_outpost';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(51221, 'spell_fjord_taxi_to_explorers_league_outpost');
+
+-- Quest 12166
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 46770;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (26616,26643) AND `source_type` = 0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(26616,0,0,0,8,0,100,1,46770,0,0,0,0,33,27111,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Blighted Elk - On Spellhit 'Liquid Fire of Elune' - Quest Credit 'The Liquid Fire of Elune'"),
+(26616,0,1,0,8,0,100,1,46770,0,0,0,0,11,47972,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Blighted Elk - On Spellhit 'Liquid Fire of Elune' - Cast 'The Liquid Fire of Elune: Blue Fire'"),
+(26616,0,2,0,8,0,100,1,46770,0,0,0,0,41,10000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Blighted Elk - On Spellhit 'Liquid Fire of Elune' - Despawn"),
+
+(26643,0,0,0,8,0,100,0,46770,0,0,0,0,33,27112,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Rabid Grizzly - On Spellhit 'Liquid Fire of Elune' - Quest Credit 'The Liquid Fire of Elune'"),
+(26643,0,1,0,8,0,100,0,46770,0,0,0,0,11,47972,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Rabid Grizzly - On Spellhit 'Liquid Fire of Elune' - Cast 'The Liquid Fire of Elune: Blue Fire'"),
+(26643,0,2,0,8,0,100,0,46770,0,0,0,0,41,10000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Rabid Grizzly - On Spellhit 'Liquid Fire of Elune' - Despawn");
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 47190;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_dragonblight_toaluus_spiritual_incense';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(47190, 'spell_dragonblight_toaluus_spiritual_incense');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 61122;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_storm_peaks_contact_brann';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(61122, 'spell_storm_peaks_contact_brann');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 13 AND `SourceEntry` = 61121;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,61121,0,0,31,0,3,29579,0,0,0,0,"","Group 0: Spell 'Despawn Brann' targets creature 'Brann Bronzebeard'"),
+(13,1,61121,0,0,33,0,1,3,0,0,0,0,"","Group 0: Spell 'Despawn Brann' targets creature 'Brann Bronzebeard' if owned by spell caster");
+
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_gen_despawn_target' AND `spell_id` = 61121;
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(61121, 'spell_gen_despawn_target');
+
+-- Already scripted in SpellScript
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 66744;
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (31606,31746,-31773,-31774,-31775,-31776);
+DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_zangarmarsh_stormcrow_amulet','spell_zangarmarsh_whisper_aura');
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(31606, 'spell_zangarmarsh_stormcrow_amulet'),
+(31773, 'spell_zangarmarsh_whisper_aura'),
+(31774, 'spell_zangarmarsh_whisper_aura'),
+(31775, 'spell_zangarmarsh_whisper_aura'),
+(31776, 'spell_zangarmarsh_whisper_aura');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 19512;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (1229600,1229800) AND `source_type` = 9;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(1229600,9,0,0,0,0,100,0,0,0,0,0,0,36,12297,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Sickly Gazelle - On Script - Update Template To 'Cured Gazelle'"),
+(1229600,9,1,0,0,0,100,0,0,0,0,0,0,28,19502,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Sickly Gazelle - On Script - Remove Aura 'Sickly Critter Aura'"),
+(1229600,9,2,0,0,0,100,0,0,0,0,0,0,33,12297,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Sickly Gazelle - On Script - Quest Credit 'Curing the Sick'"),
+(1229600,9,3,0,0,0,100,0,1500,1500,0,0,0,114,0,0,0,0,0,0,1,0,0,0,0,30,30,0,0,"Sickly Gazelle - On Script - Move Offset"),
+(1229600,9,4,0,0,0,100,0,5000,5000,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Sickly Gazelle - On Script - Despawn"),
+
+(1229800,9,0,0,0,0,100,0,0,0,0,0,0,36,12299,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Sickly Deer - On Script - Update Template To 'Cured Deer'"),
+(1229800,9,1,0,0,0,100,0,0,0,0,0,0,28,19502,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Sickly Deer - On Script - Remove Aura 'Sickly Critter Aura'"),
+(1229800,9,2,0,0,0,100,0,0,0,0,0,0,33,12299,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Sickly Deer - On Script - Quest Credit 'Curing the Sick'"),
+(1229800,9,3,0,0,0,100,0,1500,1500,0,0,0,114,0,0,0,0,0,0,1,0,0,0,0,30,30,0,0,"Sickly Deer - On Script - Move Offset"),
+(1229800,9,4,0,0,0,100,0,5000,5000,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Sickly Deer - On Script - Despawn");
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (43369,-43369,-68347);
+DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_fjord_worg_disguise', 'spell_fjord_worg_disguise_dummy');
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(43369, 'spell_fjord_worg_disguise'),
+(68347, 'spell_fjord_worg_disguise_dummy');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 47435;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_dragonblight_scrape_corrosive_spit';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(47435, 'spell_dragonblight_scrape_corrosive_spit');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = -46813;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_borean_tundra_taxi_coldarra_ledge_to_transitus_shield';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(46813, 'spell_borean_tundra_taxi_coldarra_ledge_to_transitus_shield');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = -42385;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_dustwallow_marsh_alcaz_survey_aura';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(42385, 'spell_dustwallow_marsh_alcaz_survey_aura');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (-40623,-40625,-40626);
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_bem_apexis_swiftness';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(40623, 'spell_bem_apexis_swiftness'),
+(40625, 'spell_bem_apexis_swiftness'),
+(40626, 'spell_bem_apexis_swiftness');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 24714;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_hallow_end_trick_initial';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(24714, 'spell_hallow_end_trick_initial');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 36587;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_bem_vision_guide';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(36587, 'spell_bem_vision_guide');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 42144;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_hallow_end_create_water_bucket';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(42144, 'spell_hallow_end_create_water_bucket');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = -68839;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_bronjahm_corrupt_soul';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(68839, 'spell_bronjahm_corrupt_soul');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = -62320;
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_thorim_aura_of_celerity';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(62320, 'spell_thorim_aura_of_celerity');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (-54361,-59743);
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_zuramat_void_shift';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(54361, 'spell_zuramat_void_shift'),
+(59743, 'spell_zuramat_void_shift');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (-47744,61611);
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_grizzly_hills_rage_of_jinarrak';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(47744, 'spell_grizzly_hills_rage_of_jinarrak');
+
+--
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (-30448,30447,30448);
+DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_azuremyst_isle_shadow_of_the_forest_creature','spell_azuremyst_isle_shadow_of_the_forest_player');
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(30447, 'spell_azuremyst_isle_shadow_of_the_forest_creature'),
+(30448, 'spell_azuremyst_isle_shadow_of_the_forest_player');
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
index ad5f9e9588c..f641abf1763 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
@@ -31,6 +31,7 @@ EndScriptData */
#include "MotionMaster.h"
#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
+#include "SpellScript.h"
#include "TemporarySummon.h"
#include "Weather.h"
#include "zulaman.h"
@@ -46,7 +47,16 @@ enum Spells
SPELL_ELECTRICAL_OVERLOAD = 43658,
SPELL_EAGLE_SWOOP = 44732,
SPELL_ZAP = 43137,
- SPELL_SAND_STORM = 25160
+ SPELL_SAND_STORM = 25160,
+
+ SPELL_ELECTRICAL_STORM_AURA = 44007,
+ SPELL_TELEPORT_SELF = 44006,
+
+ SPELL_ELECTRICAL_ARC_1 = 43653,
+ SPELL_ELECTRICAL_ARC_2 = 43654,
+ SPELL_ELECTRICAL_ARC_3 = 43655,
+ SPELL_ELECTRICAL_ARC_4 = 43656,
+ SPELL_ELECTRICAL_ARC_5 = 43659
};
enum Says
@@ -466,8 +476,66 @@ class npc_akilzon_eagle : public CreatureScript
}
};
+// 43648 - Electrical Storm
+class spell_akilzon_electrical_storm : public SpellScript
+{
+ PrepareSpellScript(spell_akilzon_electrical_storm);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_ELECTRICAL_STORM_AURA, SPELL_TELEPORT_SELF });
+ }
+
+ void HandleAfterHit()
+ {
+ Unit* target = GetHitUnit();
+ target->CastSpell(target, SPELL_ELECTRICAL_STORM_AURA, true);
+ target->CastSpell(target, SPELL_TELEPORT_SELF, true);
+ }
+
+ void Register() override
+ {
+ AfterHit += SpellHitFn(spell_akilzon_electrical_storm::HandleAfterHit);
+ }
+};
+
+// 43658 - Electrical Overload Graphic Pulse
+class spell_akilzon_electrical_overload : public SpellScript
+{
+ PrepareSpellScript(spell_akilzon_electrical_overload);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo(
+ {
+ SPELL_ELECTRICAL_ARC_1,
+ SPELL_ELECTRICAL_ARC_2,
+ SPELL_ELECTRICAL_ARC_3,
+ SPELL_ELECTRICAL_ARC_4,
+ SPELL_ELECTRICAL_ARC_5
+ });
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit* caster = GetCaster();
+ caster->CastSpell(caster, SPELL_ELECTRICAL_ARC_1, true);
+ caster->CastSpell(caster, SPELL_ELECTRICAL_ARC_2, true);
+ caster->CastSpell(caster, SPELL_ELECTRICAL_ARC_3, true);
+ caster->CastSpell(caster, SPELL_ELECTRICAL_ARC_4, true);
+ caster->CastSpell(caster, SPELL_ELECTRICAL_ARC_5, true);
+ }
+
+ void Register() override
+ {
+ OnEffectHit += SpellEffectFn(spell_akilzon_electrical_overload::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
void AddSC_boss_akilzon()
{
new boss_akilzon();
new npc_akilzon_eagle();
+ RegisterSpellScript(spell_akilzon_electrical_storm);
+ RegisterSpellScript(spell_akilzon_electrical_overload);
}
diff --git a/src/server/scripts/Events/hallows_end.cpp b/src/server/scripts/Events/hallows_end.cpp
index 3744aaca6ed..4143047c002 100644
--- a/src/server/scripts/Events/hallows_end.cpp
+++ b/src/server/scripts/Events/hallows_end.cpp
@@ -95,6 +95,32 @@ class spell_hallow_end_candy_pirate : public AuraScript
}
};
+enum TrickInitial
+{
+ SPELL_TRICK_INITIAL = 24750
+};
+
+// 24714 - Trick
+class spell_hallow_end_trick_initial : public SpellScript
+{
+ PrepareSpellScript(spell_hallow_end_trick_initial);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_TRICK_INITIAL });
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ GetHitUnit()->CastSpell(GetHitUnit(), SPELL_TRICK_INITIAL);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_hallow_end_trick_initial::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
enum TrickSpells
{
SPELL_PIRATE_COSTUME_MALE = 24708,
@@ -302,12 +328,43 @@ class spell_hallow_end_wand : public SpellScript
}
};
+enum CreateWaterBucket
+{
+ SPELL_CREATE_WATER_BUCKET_BARREL_SPLASH = 43244,
+ SPELL_JUST_LOOTED_WATER_BARREL = 44410
+};
+
+// 42144 - Headless Horseman - Create Water Bucket
+class spell_hallow_end_create_water_bucket : public SpellScript
+{
+ PrepareSpellScript(spell_hallow_end_create_water_bucket);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_CREATE_WATER_BUCKET_BARREL_SPLASH, SPELL_JUST_LOOTED_WATER_BARREL });
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit* target = GetHitUnit();
+ target->CastSpell(target, SPELL_CREATE_WATER_BUCKET_BARREL_SPLASH);
+ target->CastSpell(target, SPELL_JUST_LOOTED_WATER_BARREL);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_hallow_end_create_water_bucket::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
void AddSC_event_hallows_end()
{
RegisterSpellScript(spell_hallow_end_candy);
RegisterSpellScript(spell_hallow_end_candy_pirate);
+ RegisterSpellScript(spell_hallow_end_trick_initial);
RegisterSpellScript(spell_hallow_end_trick);
RegisterSpellScript(spell_hallow_end_trick_or_treat);
RegisterSpellScript(spell_hallow_end_tricky_treat);
RegisterSpellScript(spell_hallow_end_wand);
+ RegisterSpellScript(spell_hallow_end_create_water_bucket);
}
diff --git a/src/server/scripts/Events/midsummer.cpp b/src/server/scripts/Events/midsummer.cpp
index aff921d63ba..b36fd1a04b6 100644
--- a/src/server/scripts/Events/midsummer.cpp
+++ b/src/server/scripts/Events/midsummer.cpp
@@ -490,6 +490,57 @@ public:
explicit spell_midsummer_cleansing_flames(CleansingFlames triggeredSpell) : _triggeredSpell(triggeredSpell) { }
};
+enum StampOutBonfire
+{
+ SPELL_STAMP_OUT_BONFIRE_EVENT = 45443,
+ SPELL_STAMP_OUT_BONFIRE_ART_KIT = 46903,
+ SPELL_STAMP_OUT_BONFIRE_DUMMY = 45437
+};
+
+// 45458 - Holiday - Midsummer, Stamp Out Bonfire, Quest Complete
+class spell_midsummer_stamp_out_bonfire_quest_complete : public AuraScript
+{
+ PrepareAuraScript(spell_midsummer_stamp_out_bonfire_quest_complete);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_STAMP_OUT_BONFIRE_EVENT });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_STAMP_OUT_BONFIRE_EVENT, true);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_midsummer_stamp_out_bonfire_quest_complete::AfterApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+// 45443 - Stamp Out Bonfire, Event
+class spell_midsummer_stamp_out_bonfire_event : public SpellScript
+{
+ PrepareSpellScript(spell_midsummer_stamp_out_bonfire_event);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_STAMP_OUT_BONFIRE_ART_KIT, SPELL_STAMP_OUT_BONFIRE_DUMMY });
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit* caster = GetCaster();
+ caster->CastSpell(caster, SPELL_STAMP_OUT_BONFIRE_ART_KIT, true);
+ caster->CastSpell(caster, SPELL_STAMP_OUT_BONFIRE_DUMMY, true);
+ }
+
+ void Register() override
+ {
+ OnEffectHit += SpellEffectFn(spell_midsummer_stamp_out_bonfire_event::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
void AddSC_event_midsummer()
{
RegisterSpellScript(spell_midsummer_braziers_hit);
@@ -511,4 +562,6 @@ void AddSC_event_midsummer()
RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_the_undercity", SPELL_CREATE_FLAME_OF_THE_UNDERCITY);
RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_silvermoon", SPELL_CREATE_FLAME_OF_SILVERMOON);
RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_the_exodar", SPELL_CREATE_FLAME_OF_THE_EXODAR);
+ RegisterSpellScript(spell_midsummer_stamp_out_bonfire_quest_complete);
+ RegisterSpellScript(spell_midsummer_stamp_out_bonfire_event);
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
index 3573cf7b610..62cd8395880 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
@@ -30,6 +30,7 @@
#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
#include "SpellInfo.h"
+#include "SpellScript.h"
#include "ScriptMgr.h"
#include "SplineChainMovementGenerator.h"
#include "TemporarySummon.h"
@@ -1465,6 +1466,32 @@ public:
}
};
+enum TeleportToStratholme
+{
+ SPELL_TELEPORT_TO_COT_STRATHOLME = 53436
+};
+
+// 53435 - Teleport to CoT Stratholme Phase 4
+class spell_cos_teleport_to_cot_stratholme_phase_4 : public SpellScript
+{
+ PrepareSpellScript(spell_cos_teleport_to_cot_stratholme_phase_4);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_TELEPORT_TO_COT_STRATHOLME });
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ GetHitUnit()->CastSpell(GetHitUnit(), SPELL_TELEPORT_TO_COT_STRATHOLME);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_cos_teleport_to_cot_stratholme_phase_4::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
void AddSC_culling_of_stratholme()
{
new npc_hearthsinger_forresten_cot();
@@ -1480,4 +1507,6 @@ void AddSC_culling_of_stratholme()
new npc_sergeant_morigan();
new npc_roger_owens();
new npc_crate_helper();
+
+ RegisterSpellScript(spell_cos_teleport_to_cot_stratholme_phase_4);
}
diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
index 78448c14103..2480516cf95 100644
--- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
@@ -665,6 +665,64 @@ class spell_azuremyst_isle_cast_fishing_net : public SpellScript
}
};
+/*######
+## Quest 9542: Totem of Vark
+######*/
+
+enum TotemOfVark
+{
+ SPELL_SHADOW_OF_THE_FOREST_SI_DND = 32213
+};
+
+// 30447 - Shadow of the Forest
+class spell_azuremyst_isle_shadow_of_the_forest_creature : public AuraScript
+{
+ PrepareAuraScript(spell_azuremyst_isle_shadow_of_the_forest_creature);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_SHADOW_OF_THE_FOREST_SI_DND });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_SHADOW_OF_THE_FOREST_SI_DND, true);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_azuremyst_isle_shadow_of_the_forest_creature::AfterApply, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+// 30448 - Shadow of the Forest
+class spell_azuremyst_isle_shadow_of_the_forest_player : public AuraScript
+{
+ PrepareAuraScript(spell_azuremyst_isle_shadow_of_the_forest_player);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_SHADOW_OF_THE_FOREST_SI_DND });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ if (Unit* caster = GetCaster())
+ caster->CastSpell(GetTarget(), SPELL_SHADOW_OF_THE_FOREST_SI_DND, true);
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->RemoveAurasDueToSpell(SPELL_SHADOW_OF_THE_FOREST_SI_DND);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_azuremyst_isle_shadow_of_the_forest_player::AfterApply, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL);
+ AfterEffectRemove += AuraEffectRemoveFn(spell_azuremyst_isle_shadow_of_the_forest_player::AfterRemove, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
void AddSC_azuremyst_isle()
{
new npc_draenei_survivor();
@@ -674,4 +732,6 @@ void AddSC_azuremyst_isle()
new npc_geezle();
RegisterSpellScript(spell_inoculate_nestlewood);
RegisterSpellScript(spell_azuremyst_isle_cast_fishing_net);
+ RegisterSpellScript(spell_azuremyst_isle_shadow_of_the_forest_creature);
+ RegisterSpellScript(spell_azuremyst_isle_shadow_of_the_forest_player);
}
diff --git a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
index 1f4d9053f8f..b9bc4293c1f 100644
--- a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
+++ b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
@@ -141,10 +141,41 @@ class spell_dustwallow_marsh_salvage_wreckage : public SpellScript
}
};
+/*######
+## Quest 11142: Survey Alcaz Island
+######*/
+
+enum SurveyAlcazIsland
+{
+ SPELL_ALCAZ_SURVEY_CREDIT = 42316
+};
+
+// 42385 - Alcaz Survey Aura
+class spell_dustwallow_marsh_alcaz_survey_aura : public AuraScript
+{
+ PrepareAuraScript(spell_dustwallow_marsh_alcaz_survey_aura);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_ALCAZ_SURVEY_CREDIT });
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_ALCAZ_SURVEY_CREDIT, true);
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_dustwallow_marsh_alcaz_survey_aura::AfterRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
void AddSC_dustwallow_marsh()
{
RegisterSpellScript(spell_ooze_zap);
RegisterSpellScript(spell_ooze_zap_channel_end);
RegisterSpellScript(spell_energize_aoe);
RegisterSpellScript(spell_dustwallow_marsh_salvage_wreckage);
+ RegisterSpellScript(spell_dustwallow_marsh_alcaz_survey_aura);
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp
index 04098b968b7..9c9237d5bc6 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp
@@ -45,7 +45,10 @@ enum Spells
SPELL_SOULSTORM = 68872,
SPELL_SOULSTORM_CHANNEL = 69008, // Pre-fight
SPELL_SOULSTORM_VISUAL = 68870, // Pre-cast Soulstorm
- SPELL_PURPLE_BANISH_VISUAL = 68862 // Used by Soul Fragment (Aura)
+ SPELL_PURPLE_BANISH_VISUAL = 68862, // Used by Soul Fragment (Aura)
+
+ SPELL_KNOCKDOWN_STUN = 68848,
+ SPELL_DRAW_CORRUPTED_SOUL = 68846
};
enum Events
@@ -328,6 +331,29 @@ class spell_bronjahm_soulstorm_targeting : public SpellScript
}
};
+// 68839 - Corrupt Soul
+class spell_bronjahm_corrupt_soul : public AuraScript
+{
+ PrepareAuraScript(spell_bronjahm_corrupt_soul);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_KNOCKDOWN_STUN, SPELL_DRAW_CORRUPTED_SOUL });
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+ target->CastSpell(target, SPELL_KNOCKDOWN_STUN, true);
+ target->CastSpell(target, SPELL_DRAW_CORRUPTED_SOUL, true);
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_bronjahm_corrupt_soul::AfterRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
class achievement_bronjahm_soul_power : public AchievementCriteriaScript
{
public:
@@ -348,5 +374,6 @@ void AddSC_boss_bronjahm()
RegisterSpellScriptWithArgs(spell_bronjahm_soulstorm_visual, "spell_bronjahm_soulstorm_channel");
RegisterSpellScriptWithArgs(spell_bronjahm_soulstorm_visual, "spell_bronjahm_soulstorm_visual");
RegisterSpellScript(spell_bronjahm_soulstorm_targeting);
+ RegisterSpellScript(spell_bronjahm_corrupt_soul);
new achievement_bronjahm_soul_power();
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
index bb927142fdd..93acc9e9a91 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
@@ -202,6 +202,7 @@ enum PreAddSpells
SPELL_RUNIC_STRIKE = 62322,
SPELL_AURA_OF_CELERITY = 62320,
+ SPELL_AURA_OF_CELERITY_VISUAL = 62398,
SPELL_IMPALE = 62331,
SPELL_WHIRLING_TRIP = 64151,
@@ -2129,6 +2130,27 @@ class spell_thorim_activate_lightning_orb_periodic : public SpellScriptLoader
}
};
+// 62320 - Aura of Celerity
+class spell_thorim_aura_of_celerity : public AuraScript
+{
+ PrepareAuraScript(spell_thorim_aura_of_celerity);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_AURA_OF_CELERITY_VISUAL });
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->RemoveAurasDueToSpell(SPELL_AURA_OF_CELERITY_VISUAL);
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_thorim_aura_of_celerity::AfterRemove, EFFECT_0, SPELL_AURA_MELEE_SLOW, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
class achievement_dont_stand_in_the_lightning : public AchievementCriteriaScript
{
public:
@@ -2203,6 +2225,7 @@ void AddSC_boss_thorim()
new spell_thorim_arena_leap();
new spell_thorim_runic_smash();
new spell_thorim_activate_lightning_orb_periodic();
+ RegisterSpellScript(spell_thorim_aura_of_celerity);
new achievement_dont_stand_in_the_lightning();
new achievement_lose_your_illusion();
new achievement_i_ll_take_you_all_on();
diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
index efc7f28a3d7..19620eeb30d 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
@@ -18,6 +18,7 @@
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "ScriptedCreature.h"
+#include "SpellScript.h"
#include "violet_hold.h"
enum ZuramatTexts
@@ -187,6 +188,27 @@ private:
SummonList _summons;
};
+// 54361, 59743 - Void Shift
+class spell_zuramat_void_shift : public AuraScript
+{
+ PrepareAuraScript(spell_zuramat_void_shift);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_VOID_SHIFTED });
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_VOID_SHIFTED, true);
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_zuramat_void_shift::AfterRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
class achievement_void_dance : public AchievementCriteriaScript
{
public:
@@ -209,5 +231,6 @@ void AddSC_boss_zuramat()
{
RegisterVioletHoldCreatureAI(boss_zuramat);
RegisterVioletHoldCreatureAI(npc_void_sentry);
+ RegisterSpellScript(spell_zuramat_void_shift);
new achievement_void_dance();
}
diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp
index caed83fb973..838baad156b 100644
--- a/src/server/scripts/Northrend/zone_borean_tundra.cpp
+++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp
@@ -1904,6 +1904,111 @@ class spell_borean_tundra_ultrasonic_screwdriver : public SpellScript
}
};
+/*######
+## Quest 11652: The Plains of Nasam
+######*/
+
+enum ThePlainsOfNasam
+{
+ SPELL_DROP_WARSONG_LAND_MINE_1 = 45751,
+ SPELL_DROP_WARSONG_LAND_MINE_2 = 45752,
+ SPELL_DROP_WARSONG_LAND_MINE_3 = 45753,
+ SPELL_DROP_WARSONG_LAND_MINE_4 = 45754,
+ SPELL_DROP_WARSONG_LAND_MINE_5 = 45755,
+ SPELL_DROP_WARSONG_LAND_MINE_6 = 45756,
+ SPELL_DROP_WARSONG_LAND_MINE_7 = 47839,
+ SPELL_DROP_WARSONG_LAND_MINE_8 = 45749
+};
+
+static constexpr std::array<uint32, 8> DropLandMineSpells =
+{
+ SPELL_DROP_WARSONG_LAND_MINE_1, SPELL_DROP_WARSONG_LAND_MINE_2, SPELL_DROP_WARSONG_LAND_MINE_3, SPELL_DROP_WARSONG_LAND_MINE_4,
+ SPELL_DROP_WARSONG_LAND_MINE_5, SPELL_DROP_WARSONG_LAND_MINE_6, SPELL_DROP_WARSONG_LAND_MINE_7, SPELL_DROP_WARSONG_LAND_MINE_8
+};
+
+// 45750 - Land Mine Barrier
+class spell_borean_tundra_land_mine_barrier : public SpellScript
+{
+ PrepareSpellScript(spell_borean_tundra_land_mine_barrier);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo(DropLandMineSpells);
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit* caster = GetCaster();
+ for (uint32 spells : DropLandMineSpells)
+ caster->CastSpell(caster, spells);
+ }
+
+ void Register() override
+ {
+ OnEffectHit += SpellEffectFn(spell_borean_tundra_land_mine_barrier::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
+/*######
+## Quest 11681: Rescuing Evanor
+######*/
+
+enum RescuingEvanor
+{
+ SPELL_AMBER_LEDGE_TO_BERYL_POINT = 45883
+};
+
+// 45992 - Taxi - Amber Ledge to Beryl Point Platform
+class spell_borean_tundra_taxi_amber_ledge_to_beryl_point_platform : public AuraScript
+{
+ PrepareAuraScript(spell_borean_tundra_taxi_amber_ledge_to_beryl_point_platform);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_AMBER_LEDGE_TO_BERYL_POINT });
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_AMBER_LEDGE_TO_BERYL_POINT);
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_borean_tundra_taxi_amber_ledge_to_beryl_point_platform::AfterRemove, EFFECT_0, SPELL_AURA_MECHANIC_IMMUNITY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+/*######
+## Quest 11969: Springing the Trap
+######*/
+
+enum SpringingTheTrap
+{
+ SPELL_COLDARRA_TO_TRANSITUS = 46814
+};
+
+// 46813 - Taxi - Coldarra Ledge to Transitus Shield
+class spell_borean_tundra_taxi_coldarra_ledge_to_transitus_shield : public AuraScript
+{
+ PrepareAuraScript(spell_borean_tundra_taxi_coldarra_ledge_to_transitus_shield);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_COLDARRA_TO_TRANSITUS });
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_COLDARRA_TO_TRANSITUS);
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_borean_tundra_taxi_coldarra_ledge_to_transitus_shield::AfterRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
void AddSC_borean_tundra()
{
RegisterCreatureAI(npc_beryl_sorcerer);
@@ -1936,4 +2041,7 @@ void AddSC_borean_tundra()
RegisterSpellScript(spell_borean_tundra_weakness_to_lightning_on_quest_complete);
RegisterSpellScript(spell_borean_tundra_signal_alliance);
RegisterSpellScript(spell_borean_tundra_ultrasonic_screwdriver);
+ 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);
}
diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp
index e63d63c14e4..fec320bea96 100644
--- a/src/server/scripts/Northrend/zone_dragonblight.cpp
+++ b/src/server/scripts/Northrend/zone_dragonblight.cpp
@@ -913,6 +913,36 @@ class spell_dragonblight_fill_blood_unholy_frost_gem : public SpellScript
}
};
+/*######
+## Quest 12076: Messy Business
+######*/
+
+enum MessyBusiness
+{
+ SPELL_CORROSIVE_SPIT = 47447
+};
+
+// 47435 - Scrape Corrosive Spit
+class spell_dragonblight_scrape_corrosive_spit : public SpellScript
+{
+ PrepareSpellScript(spell_dragonblight_scrape_corrosive_spit);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_CORROSIVE_SPIT });
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ GetCaster()->RemoveAurasDueToSpell(SPELL_CORROSIVE_SPIT);
+ }
+
+ void Register() override
+ {
+ OnEffectHit += SpellEffectFn(spell_dragonblight_scrape_corrosive_spit::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
// 47447 - Corrosive Spit
class spell_dragonblight_corrosive_spit : public AuraScript
{
@@ -1035,6 +1065,36 @@ class spell_dragonblight_end_of_the_line_quest_completion_script : public SpellS
}
};
+/*######
+## Quest 12028: Spiritual Insight
+######*/
+
+enum SpiritualInsight
+{
+ SPELL_SPIRITUAL_INSIGHT = 47189
+};
+
+// 47190 - Toalu'u's Spiritual Incense
+class spell_dragonblight_toaluus_spiritual_incense : public AuraScript
+{
+ PrepareAuraScript(spell_dragonblight_toaluus_spiritual_incense);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_SPIRITUAL_INSIGHT });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_SPIRITUAL_INSIGHT);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_dragonblight_toaluus_spiritual_incense::AfterApply, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
void AddSC_dragonblight()
{
RegisterCreatureAI(npc_commander_eligor_dawnbringer);
@@ -1052,8 +1112,10 @@ void AddSC_dragonblight()
RegisterSpellScript(spell_dragonblight_bombard_the_ballistae_fx_master);
RegisterSpellScript(spell_dragonblight_surge_needle_teleporter);
RegisterSpellScript(spell_dragonblight_fill_blood_unholy_frost_gem);
+ RegisterSpellScript(spell_dragonblight_scrape_corrosive_spit);
RegisterSpellScript(spell_dragonblight_corrosive_spit);
RegisterSpellScript(spell_dragonblight_focus_on_the_beach_quest_completion_script);
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);
}
diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
index 1ec851a1f8c..32017d9f486 100644
--- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
@@ -1066,6 +1066,39 @@ class spell_grizzly_hills_hand_over_reins : public SpellScript
}
};
+/*######
+## Quest 12121: See You on the Other Side
+######*/
+
+enum SeeYouOnTheOtherSide
+{
+ SPELL_SUMMON_YOUR_CORPSE = 61612,
+ SPELL_ON_THE_OTHER_SIDE = 61611
+};
+
+// 47744 - Rage of Jin'arrak
+class spell_grizzly_hills_rage_of_jinarrak : public AuraScript
+{
+ PrepareAuraScript(spell_grizzly_hills_rage_of_jinarrak);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_SUMMON_YOUR_CORPSE, SPELL_ON_THE_OTHER_SIDE });
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+ target->CastSpell(target, SPELL_SUMMON_YOUR_CORPSE, true);
+ target->CastSpell(target, SPELL_ON_THE_OTHER_SIDE, true);
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_grizzly_hills_rage_of_jinarrak::AfterRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
void AddSC_grizzly_hills()
{
RegisterCreatureAI(npc_emily);
@@ -1091,4 +1124,5 @@ void AddSC_grizzly_hills()
RegisterSpellScript(spell_grizzly_hills_escape_from_silverbrook);
RegisterSpellScript(spell_grizzly_hills_escape_from_silverbrook_summon_worgen);
RegisterSpellScript(spell_grizzly_hills_hand_over_reins);
+ RegisterSpellScript(spell_grizzly_hills_rage_of_jinarrak);
}
diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp
index f9fec626827..d7518888cf5 100644
--- a/src/server/scripts/Northrend/zone_howling_fjord.cpp
+++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp
@@ -749,6 +749,94 @@ class spell_fjord_failed_mix_concoction_2 : public SpellScript
}
};
+/*######
+## Quest 11448: The Explorers' League Outpost
+######*/
+
+enum TheExplorersLeagueOutpost
+{
+ SPELL_TAXI_TO_EXPLORERS_LEAGUE = 44280
+};
+
+// 51221 - Taxi to Explorers' League Outpost
+class spell_fjord_taxi_to_explorers_league_outpost : public AuraScript
+{
+ PrepareAuraScript(spell_fjord_taxi_to_explorers_league_outpost);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_TAXI_TO_EXPLORERS_LEAGUE });
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_TAXI_TO_EXPLORERS_LEAGUE);
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_fjord_taxi_to_explorers_league_outpost::AfterRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+/*######
+## Quest 11323, 11325: In Worg's Clothing
+######*/
+
+enum InWorgsClothing
+{
+ SPELL_WORG_DISGUISE_DUMMY = 68347,
+ SPELL_WORG_DISGUISE = 43369
+};
+
+// 43369 - Worg Disguise
+class spell_fjord_worg_disguise : public AuraScript
+{
+ PrepareAuraScript(spell_fjord_worg_disguise);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_WORG_DISGUISE_DUMMY });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_WORG_DISGUISE_DUMMY);
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->RemoveAurasDueToSpell(SPELL_WORG_DISGUISE_DUMMY);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_fjord_worg_disguise::AfterApply, EFFECT_0, SPELL_AURA_FORCE_REACTION, AURA_EFFECT_HANDLE_REAL);
+ AfterEffectRemove += AuraEffectRemoveFn(spell_fjord_worg_disguise::AfterRemove, EFFECT_0, SPELL_AURA_FORCE_REACTION, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+// 68347 - Worg Disguise
+class spell_fjord_worg_disguise_dummy : public AuraScript
+{
+ PrepareAuraScript(spell_fjord_worg_disguise_dummy);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_WORG_DISGUISE });
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->RemoveAurasDueToSpell(SPELL_WORG_DISGUISE);
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_fjord_worg_disguise_dummy::AfterRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
void AddSC_howling_fjord()
{
RegisterCreatureAI(npc_daegarn);
@@ -769,4 +857,7 @@ void AddSC_howling_fjord()
RegisterSpellScript(spell_fjord_mixing_vrykul_blood);
RegisterSpellScript(spell_fjord_failed_mix_concoction_1);
RegisterSpellScript(spell_fjord_failed_mix_concoction_2);
+ RegisterSpellScript(spell_fjord_taxi_to_explorers_league_outpost);
+ RegisterSpellScript(spell_fjord_worg_disguise);
+ RegisterSpellScript(spell_fjord_worg_disguise_dummy);
}
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp
index a76580a65e6..9bcc0f7733c 100644
--- a/src/server/scripts/Northrend/zone_storm_peaks.cpp
+++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp
@@ -1321,6 +1321,39 @@ class spell_storm_peaks_flaming_arrow_triggered_effect : public AuraScript
}
};
+/*######
+## Quest 12920: Catching up with Brann
+######*/
+
+enum CatchingUpWithBrann
+{
+ SPELL_DESPAWN_BRANN = 61121,
+ SPELL_CONTACT_BRANN = 55038
+};
+
+// 61122 - Contact Brann
+class spell_storm_peaks_contact_brann : public SpellScript
+{
+ PrepareSpellScript(spell_storm_peaks_contact_brann);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_DESPAWN_BRANN, SPELL_CONTACT_BRANN });
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit* caster = GetCaster();
+ caster->CastSpell(caster, SPELL_DESPAWN_BRANN);
+ caster->CastSpell(caster, SPELL_CONTACT_BRANN);
+ }
+
+ void Register() override
+ {
+ OnEffectHit += SpellEffectFn(spell_storm_peaks_contact_brann::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
void AddSC_storm_peaks()
{
RegisterCreatureAI(npc_brunnhildar_prisoner);
@@ -1350,4 +1383,5 @@ void AddSC_storm_peaks()
RegisterSpellScript(spell_storm_peaks_unstable_explosive_detonation);
RegisterSpellScript(spell_storm_peaks_call_of_earth);
RegisterSpellScript(spell_storm_peaks_flaming_arrow_triggered_effect);
+ RegisterSpellScript(spell_storm_peaks_contact_brann);
}
diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp
index a4b18fbd7a7..8d6c19b5b95 100644
--- a/src/server/scripts/Northrend/zone_zuldrak.cpp
+++ b/src/server/scripts/Northrend/zone_zuldrak.cpp
@@ -1075,6 +1075,27 @@ class spell_zuldrak_quenching_mist : public AuraScript
}
};
+// 52989 - Akali's Stun
+class spell_zuldrak_akalis_stun : public AuraScript
+{
+ PrepareAuraScript(spell_zuldrak_akalis_stun);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_FLICKERING_FLAMES });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->RemoveAurasDueToSpell(SPELL_FLICKERING_FLAMES);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_zuldrak_akalis_stun::AfterApply, EFFECT_0, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
/*######
## Quest 12661: Infiltrating Voltarus / 12669: So Far, So Bad / 12676: Sabotage / 12677: Hazardous Materials / 12713: Betrayal
######*/
@@ -1196,6 +1217,109 @@ class spell_zuldrak_gymers_throw : public SpellScript
}
};
+/*######
+## Quest 12557: Lab Work
+######*/
+
+enum LabWork
+{
+ SPELL_LAB_WORK_HAVE_WITHERED_BATWING = 51060,
+ SPELL_LAB_WORK_HAVE_MUDDY_MIRE_MAGGOT = 51068,
+ SPELL_LAB_WORK_HAVE_AMBERSEED = 51088,
+ SPELL_LAB_WORK_HAVE_CHILLED_SERPENT_MUCUS = 51094,
+
+ SPELL_WITHERED_BATWING_KILL_CREDIT = 51226,
+ SPELL_MUDDY_MIRE_MAGGOT_KILL_CREDIT = 51227,
+ SPELL_AMBERSEED_KILL_CREDIT = 51228,
+ SPELL_CHILLED_SERPENT_MUCUS_KILL_CREDIT = 51229
+};
+
+// 51060 - Have Withered Batwing
+// 51068 - Have Muddy Mire Maggot
+// 51088 - Have Amberseed
+// 51094 - Have Chilled Serpent Mucus
+class spell_zuldrak_have_ingredient : public AuraScript
+{
+ PrepareAuraScript(spell_zuldrak_have_ingredient);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo(
+ {
+ SPELL_WITHERED_BATWING_KILL_CREDIT,
+ SPELL_MUDDY_MIRE_MAGGOT_KILL_CREDIT,
+ SPELL_AMBERSEED_KILL_CREDIT,
+ SPELL_CHILLED_SERPENT_MUCUS_KILL_CREDIT
+ });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ switch (GetId())
+ {
+ case SPELL_LAB_WORK_HAVE_WITHERED_BATWING:
+ GetTarget()->CastSpell(GetTarget(), SPELL_WITHERED_BATWING_KILL_CREDIT);
+ break;
+ case SPELL_LAB_WORK_HAVE_MUDDY_MIRE_MAGGOT:
+ GetTarget()->CastSpell(GetTarget(), SPELL_MUDDY_MIRE_MAGGOT_KILL_CREDIT);
+ break;
+ case SPELL_LAB_WORK_HAVE_AMBERSEED:
+ GetTarget()->CastSpell(GetTarget(), SPELL_AMBERSEED_KILL_CREDIT);
+ break;
+ case SPELL_LAB_WORK_HAVE_CHILLED_SERPENT_MUCUS:
+ GetTarget()->CastSpell(GetTarget(), SPELL_CHILLED_SERPENT_MUCUS_KILL_CREDIT);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_zuldrak_have_ingredient::AfterApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+/*######
+## Quest 12710: Disclosure
+######*/
+
+// 52839 - Summon Escort Aura
+class spell_zuldrak_summon_escort_aura : public AuraScript
+{
+ PrepareAuraScript(spell_zuldrak_summon_escort_aura);
+
+ enum Disclosure
+ {
+ SPELL_SCOURGE_DISGUISE = 51966,
+ SPELL_SUMMON_ESCORT = 52775,
+ SPELL_SCOURGE_DISGUISE_ESCORT = 52842
+ };
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo(
+ {
+ SPELL_SCOURGE_DISGUISE,
+ SPELL_SUMMON_ESCORT,
+ SPELL_SCOURGE_DISGUISE_ESCORT
+ });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+ target->RemoveAurasDueToSpell(SPELL_SCOURGE_DISGUISE);
+ target->CastSpell(target, SPELL_SUMMON_ESCORT);
+ target->CastSpell(target, SPELL_SCOURGE_DISGUISE_ESCORT);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_zuldrak_summon_escort_aura::AfterApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
void AddSC_zuldrak()
{
RegisterCreatureAI(npc_released_offspring_harkoa);
@@ -1220,8 +1344,11 @@ void AddSC_zuldrak()
RegisterSpellScript(spell_zuldrak_summon_nass);
RegisterSpellScript(spell_zuldrak_remove_akalis_stun);
RegisterSpellScript(spell_zuldrak_quenching_mist);
+ RegisterSpellScript(spell_zuldrak_akalis_stun);
RegisterSpellScript(spell_zuldrak_summon_stefan);
RegisterSpellScript(spell_zuldrak_zuldrak_rat);
RegisterSpellScript(spell_zuldrak_gymers_grab);
RegisterSpellScript(spell_zuldrak_gymers_throw);
+ RegisterSpellScript(spell_zuldrak_have_ingredient);
+ RegisterSpellScript(spell_zuldrak_summon_escort_aura);
}
diff --git a/src/server/scripts/Outland/outland_script_loader.cpp b/src/server/scripts/Outland/outland_script_loader.cpp
index 605d0e383c5..95c9dc5a9af 100644
--- a/src/server/scripts/Outland/outland_script_loader.cpp
+++ b/src/server/scripts/Outland/outland_script_loader.cpp
@@ -136,7 +136,7 @@ void AddSC_netherstorm();
void AddSC_shadowmoon_valley();
// void AddSC_shattrath_city();
void AddSC_terokkar_forest();
-// void AddSC_zangarmarsh();
+void AddSC_zangarmarsh();
// The name of this function should match:
// void Add${NameOfDirectory}Scripts()
@@ -262,5 +262,5 @@ void AddOutlandScripts()
AddSC_shadowmoon_valley();
// AddSC_shattrath_city();
AddSC_terokkar_forest();
- // AddSC_zangarmarsh();
+ AddSC_zangarmarsh();
}
diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
index e3edce057eb..97b57e3e125 100644
--- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
+++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
@@ -1308,6 +1308,87 @@ class spell_bem_check_fly_mount : public SpellScript
}
};
+enum ApexisSwiftness
+{
+ SPELL_APEXIS_VIBRATIONS = 40623,
+ SPELL_APEXIS_EMANATIONS = 40625,
+ SPELL_APEXIS_ENLIGHTENMENT = 40626,
+ SPELL_SWIFTNESS_APEXIS_VIBRATIONS = 40624,
+ SPELL_SWIFTNESS_APEXIS_EMANATIONS = 40627,
+ SPELL_SWIFTNESS_APEXIS_ENLIGHTENMENT = 40628
+};
+
+// 40623 - Apexis Vibrations
+// 40625 - Apexis Emanations
+// 40626 - Apexis Enlightenment
+class spell_bem_apexis_swiftness : public AuraScript
+{
+ PrepareAuraScript(spell_bem_apexis_swiftness);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo(
+ {
+ SPELL_SWIFTNESS_APEXIS_VIBRATIONS,
+ SPELL_SWIFTNESS_APEXIS_EMANATIONS,
+ SPELL_SWIFTNESS_APEXIS_ENLIGHTENMENT
+ });
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ switch (GetId())
+ {
+ case SPELL_APEXIS_VIBRATIONS:
+ GetTarget()->RemoveAurasDueToSpell(SPELL_SWIFTNESS_APEXIS_VIBRATIONS);
+ break;
+ case SPELL_APEXIS_EMANATIONS:
+ GetTarget()->RemoveAurasDueToSpell(SPELL_SWIFTNESS_APEXIS_EMANATIONS);
+ break;
+ case SPELL_APEXIS_ENLIGHTENMENT:
+ GetTarget()->RemoveAurasDueToSpell(SPELL_SWIFTNESS_APEXIS_ENLIGHTENMENT);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_bem_apexis_swiftness::AfterRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+/*######
+## Quest 10525: Vision Guide
+######*/
+
+enum VisionGuide
+{
+ SPELL_VISION_GUIDE = 36573
+};
+
+// 36587 - Vision Guide
+class spell_bem_vision_guide : public AuraScript
+{
+ PrepareAuraScript(spell_bem_vision_guide);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_VISION_GUIDE });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_VISION_GUIDE, true);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_bem_vision_guide::AfterApply, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
void AddSC_blades_edge_mountains()
{
new npc_nether_drake();
@@ -1329,4 +1410,6 @@ void AddSC_blades_edge_mountains()
RegisterSpellScript(spell_bem_aggro_burst);
RegisterSpellScript(spell_bem_choose_loc);
RegisterSpellScript(spell_bem_check_fly_mount);
+ RegisterSpellScript(spell_bem_apexis_swiftness);
+ RegisterSpellScript(spell_bem_vision_guide);
}
diff --git a/src/server/scripts/Outland/zone_zangarmarsh.cpp b/src/server/scripts/Outland/zone_zangarmarsh.cpp
new file mode 100644
index 00000000000..113002e999e
--- /dev/null
+++ b/src/server/scripts/Outland/zone_zangarmarsh.cpp
@@ -0,0 +1,100 @@
+/*
+ * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "SpellScript.h"
+#include "Unit.h"
+
+/*######
+## Quest 9718: As the Crow Flies
+######*/
+
+enum AsTheCrowFlies
+{
+ SPELL_STORMCROW_SHAPE = 31746,
+ SPELL_WHISPER_AURA_1 = 31773,
+ SPELL_WHISPER_AURA_2 = 31774,
+ SPELL_WHISPER_AURA_3 = 31775,
+ SPELL_WHISPER_AURA_4 = 31776,
+ SPELL_WHISPER_AURA_5 = 31777
+};
+
+// 31606 - Stormcrow Amulet
+class spell_zangarmarsh_stormcrow_amulet : public AuraScript
+{
+ PrepareAuraScript(spell_zangarmarsh_stormcrow_amulet);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_STORMCROW_SHAPE, SPELL_WHISPER_AURA_1 });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+ target->CastSpell(target, SPELL_STORMCROW_SHAPE, true);
+ target->CastSpell(target, SPELL_WHISPER_AURA_1, true);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_zangarmarsh_stormcrow_amulet::AfterApply, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+// 31773, 31774, 31775, 31776 - As the Crow Flies Whisper Aura
+class spell_zangarmarsh_whisper_aura : public AuraScript
+{
+ PrepareAuraScript(spell_zangarmarsh_whisper_aura);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_WHISPER_AURA_5 });
+ }
+
+ void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ switch (GetId())
+ {
+ case SPELL_WHISPER_AURA_1:
+ GetTarget()->CastSpell(GetTarget(), SPELL_WHISPER_AURA_2, true);
+ break;
+ case SPELL_WHISPER_AURA_2:
+ GetTarget()->CastSpell(GetTarget(), SPELL_WHISPER_AURA_3, true);
+ break;
+ case SPELL_WHISPER_AURA_3:
+ GetTarget()->CastSpell(GetTarget(), SPELL_WHISPER_AURA_4, true);
+ break;
+ case SPELL_WHISPER_AURA_4:
+ GetTarget()->CastSpell(GetTarget(), SPELL_WHISPER_AURA_5, true);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_zangarmarsh_whisper_aura::AfterRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
+void AddSC_zangarmarsh()
+{
+ RegisterSpellScript(spell_zangarmarsh_stormcrow_amulet);
+ RegisterSpellScript(spell_zangarmarsh_whisper_aura);
+}