From f5e4fd67c3ce100507daffa042fa72ae01fa8ffc Mon Sep 17 00:00:00 2001 From: Malcrom Date: Wed, 7 Aug 2013 10:50:06 -0230 Subject: [PATCH 1/4] Scripting: Moved Lord Valthalak from EAI to CPP. Moved all Blackrock Instances to Blackrock Mountain Dir. --- .../world/2013_08_07_01_world_misc.sql | 6 + src/server/game/Scripting/ScriptLoader.cpp | 2 + .../BlackrockDepths/blackrock_depths.cpp | 0 .../BlackrockDepths/blackrock_depths.h | 0 .../boss_ambassador_flamelash.cpp | 0 .../BlackrockDepths/boss_anubshiah.cpp | 0 .../boss_emperor_dagran_thaurissan.cpp | 0 .../boss_general_angerforge.cpp | 0 .../boss_gorosh_the_dervish.cpp | 0 .../BlackrockDepths/boss_grizzle.cpp | 0 .../boss_high_interrogator_gerstahn.cpp | 0 .../BlackrockDepths/boss_magmus.cpp | 0 .../boss_moira_bronzebeard.cpp | 0 .../BlackrockDepths/boss_tomb_of_seven.cpp | 0 .../instance_blackrock_depths.cpp | 0 .../BlackrockSpire/blackrock_spire.h | 20 +-- .../BlackrockSpire/boss_drakkisath.cpp | 0 .../boss_gizrul_the_slavener.cpp | 0 .../BlackrockSpire/boss_gyth.cpp | 0 .../BlackrockSpire/boss_halycon.cpp | 0 .../BlackrockSpire/boss_highlord_omokk.cpp | 0 .../BlackrockSpire/boss_lord_valthalak.cpp | 138 ++++++++++++++++++ .../BlackrockSpire/boss_mother_smolderweb.cpp | 0 .../boss_overlord_wyrmthalak.cpp | 0 .../boss_pyroguard_emberseer.cpp | 2 +- .../boss_quartermaster_zigris.cpp | 0 .../BlackrockSpire/boss_rend_blackhand.cpp | 0 .../boss_shadow_hunter_voshgajin.cpp | 0 .../BlackrockSpire/boss_the_beast.cpp | 0 .../BlackrockSpire/boss_urok_doomhowl.cpp | 0 .../BlackrockSpire/boss_warmaster_voone.cpp | 0 .../instance_blackrock_spire.cpp | 14 +- .../BlackwingLair/blackwing_lair.h | 0 .../boss_broodlord_lashlayer.cpp | 0 .../BlackwingLair/boss_chromaggus.cpp | 0 .../BlackwingLair/boss_ebonroc.cpp | 0 .../BlackwingLair/boss_firemaw.cpp | 0 .../BlackwingLair/boss_flamegor.cpp | 0 .../BlackwingLair/boss_nefarian.cpp | 0 .../BlackwingLair/boss_razorgore.cpp | 0 .../BlackwingLair/boss_vaelastrasz.cpp | 0 .../BlackwingLair/instance_blackwing_lair.cpp | 0 .../MoltenCore/boss_baron_geddon.cpp | 0 .../MoltenCore/boss_garr.cpp | 0 .../MoltenCore/boss_gehennas.cpp | 0 .../MoltenCore/boss_golemagg.cpp | 0 .../MoltenCore/boss_lucifron.cpp | 0 .../MoltenCore/boss_magmadar.cpp | 0 .../MoltenCore/boss_majordomo_executus.cpp | 0 .../MoltenCore/boss_ragnaros.cpp | 0 .../MoltenCore/boss_shazzrah.cpp | 0 .../MoltenCore/boss_sulfuron_harbinger.cpp | 0 .../MoltenCore/instance_molten_core.cpp | 0 .../MoltenCore/molten_core.h | 0 .../scripts/EasternKingdoms/CMakeLists.txt | 103 ++++++------- 55 files changed, 223 insertions(+), 62 deletions(-) create mode 100644 sql/updates/world/2013_08_07_01_world_misc.sql rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/blackrock_depths.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/blackrock_depths.h (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/boss_ambassador_flamelash.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/boss_anubshiah.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/boss_general_angerforge.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/boss_gorosh_the_dervish.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/boss_grizzle.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/boss_high_interrogator_gerstahn.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/boss_magmus.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/boss_moira_bronzebeard.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/boss_tomb_of_seven.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockDepths/instance_blackrock_depths.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/blackrock_spire.h (89%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_drakkisath.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_gizrul_the_slavener.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_gyth.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_halycon.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_highlord_omokk.cpp (100%) create mode 100644 src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_mother_smolderweb.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_overlord_wyrmthalak.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_pyroguard_emberseer.cpp (99%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_quartermaster_zigris.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_rend_blackhand.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_the_beast.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_urok_doomhowl.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/boss_warmaster_voone.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackrockSpire/instance_blackrock_spire.cpp (97%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackwingLair/blackwing_lair.h (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackwingLair/boss_broodlord_lashlayer.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackwingLair/boss_chromaggus.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackwingLair/boss_ebonroc.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackwingLair/boss_firemaw.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackwingLair/boss_flamegor.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackwingLair/boss_nefarian.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackwingLair/boss_razorgore.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackwingLair/boss_vaelastrasz.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/BlackwingLair/instance_blackwing_lair.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/MoltenCore/boss_baron_geddon.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/MoltenCore/boss_garr.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/MoltenCore/boss_gehennas.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/MoltenCore/boss_golemagg.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/MoltenCore/boss_lucifron.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/MoltenCore/boss_magmadar.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/MoltenCore/boss_majordomo_executus.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/MoltenCore/boss_ragnaros.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/MoltenCore/boss_shazzrah.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/MoltenCore/boss_sulfuron_harbinger.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/MoltenCore/instance_molten_core.cpp (100%) rename src/server/scripts/EasternKingdoms/{ => BlackrockMountain}/MoltenCore/molten_core.h (100%) diff --git a/sql/updates/world/2013_08_07_01_world_misc.sql b/sql/updates/world/2013_08_07_01_world_misc.sql new file mode 100644 index 00000000000..557b71742a6 --- /dev/null +++ b/sql/updates/world/2013_08_07_01_world_misc.sql @@ -0,0 +1,6 @@ +-- Move boss_lord_valthalak from EAI to CPP +UPDATE `creature_template` SET `AIName`= '', `ScriptName`= 'boss_lord_valthalak' WHERE `entry`=16042; +DELETE FROM creature_ai_scripts WHERE `creature_id`=16042; +DELETE FROM `creature_text` WHERE `entry`=16042 AND `groupid`=0; +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES +(16042, 0, 0, '%s goes into a frenzy!', 16, 0, 100, 0, 0, 0, 'Lord Valthalak - Cast Frenzy'); diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp index c67a0aec4be..73bdc84b963 100644 --- a/src/server/game/Scripting/ScriptLoader.cpp +++ b/src/server/game/Scripting/ScriptLoader.cpp @@ -127,6 +127,7 @@ void AddSC_boss_gyth(); void AddSC_boss_rend_blackhand(); void AddSC_boss_gizrul_the_slavener(); void AddSC_boss_urok_doomhowl(); +void AddSC_boss_lord_valthalak(); void AddSC_instance_blackrock_spire(); void AddSC_boss_razorgore(); //Blackwing lair void AddSC_boss_vaelastrasz(); @@ -771,6 +772,7 @@ void AddEasternKingdomsScripts() AddSC_boss_rend_blackhand(); AddSC_boss_gizrul_the_slavener(); AddSC_boss_urok_doomhowl(); + AddSC_boss_lord_valthalak(); AddSC_instance_blackrock_spire(); AddSC_boss_razorgore(); //Blackwing lair AddSC_boss_vaelastrasz(); diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.h rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_magmus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_magmus.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h similarity index 89% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h index 5c34a30912a..e2295521a5b 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h @@ -18,7 +18,7 @@ #ifndef DEF_BLACKROCK_SPIRE_H #define DEF_BLACKROCK_SPIRE_H -uint32 const EncounterCount = 22; +uint32 const EncounterCount = 23; #define BRSScriptName "instance_blackrock_spire" @@ -38,15 +38,16 @@ enum DataTypes DATA_GYTH = 11, DATA_THE_BEAST = 12, DATA_GENERAL_DRAKKISATH = 13, + DATA_LORD_VALTHALAK = 14, // Extra - DATA_DRAGONSPIRE_ROOM = 14, - DATA_HALL_RUNE_1 = 15, - DATA_HALL_RUNE_2 = 16, - DATA_HALL_RUNE_3 = 17, - DATA_HALL_RUNE_4 = 18, - DATA_HALL_RUNE_5 = 19, - DATA_HALL_RUNE_6 = 20, - DATA_HALL_RUNE_7 = 21 + DATA_DRAGONSPIRE_ROOM = 15, + DATA_HALL_RUNE_1 = 16, + DATA_HALL_RUNE_2 = 17, + DATA_HALL_RUNE_3 = 18, + DATA_HALL_RUNE_4 = 19, + DATA_HALL_RUNE_5 = 20, + DATA_HALL_RUNE_6 = 21, + DATA_HALL_RUNE_7 = 22 }; enum CreaturesIds @@ -75,6 +76,7 @@ enum CreaturesIds enum AdditionalData { SPELL_SUMMON_ROOKERY_WHELP = 15745, + EVENT_UROK_DOOMHOWL = 4845, EVENT_PYROGUARD_EMBERSEER = 4884, AREATRIGGER = 1, AREATRIGGER_DRAGONSPIRE_HALL = 2046, diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gizrul_the_slavener.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gizrul_the_slavener.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_halycon.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_halycon.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp new file mode 100644 index 00000000000..b54c8f11f34 --- /dev/null +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp @@ -0,0 +1,138 @@ +/* + * Copyright (C) 2008-2013 TrinityCore + * + * 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 . + */ + +#include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "blackrock_spire.h" + +enum Spells +{ + SPELL_FRENZY = 8269, + SPELL_SUMMON_SPECTRAL_ASSASSIN = 27249, + SPELL_SHADOW_BOLT_VOLLEY = 27382, + SPELL_SHADOW_WRATH = 27286 +}; + +enum Says +{ + EMOTE_FRENZY = 0 +}; + +enum Events +{ + EVENT_SUMMON_SPECTRAL_ASSASSIN = 1, + EVENT_SHADOW_BOLT_VOLLEY = 2, + EVENT_SHADOW_WRATH = 3 +}; + +class boss_lord_valthalak : public CreatureScript +{ +public: + boss_lord_valthalak() : CreatureScript("boss_lord_valthalak") { } + + struct boss_lord_valthalakAI : public BossAI + { + boss_lord_valthalakAI(Creature* creature) : BossAI(creature, DATA_LORD_VALTHALAK) {} + + void Reset() OVERRIDE + { + _Reset(); + frenzy40 = false; + frenzy15 = false; + } + + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, urand(6000,8000)); + events.ScheduleEvent(EVENT_SHADOW_WRATH, urand(9000,18000)); + } + + void JustDied(Unit* /*killer*/) OVERRIDE + { + if (instance) + instance->SetData(DATA_LORD_VALTHALAK, DONE); + } + + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + return; + + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_SUMMON_SPECTRAL_ASSASSIN: + DoCast(me, SPELL_SUMMON_SPECTRAL_ASSASSIN); + events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, urand(30000,35000)); + break; + case EVENT_SHADOW_BOLT_VOLLEY: + DoCastVictim(SPELL_SHADOW_BOLT_VOLLEY); + events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(4000,6000)); + break; + case EVENT_SHADOW_WRATH: + DoCastVictim(SPELL_SHADOW_WRATH); + events.ScheduleEvent(EVENT_SHADOW_WRATH, urand(19000,24000)); + break; + default: + break; + } + } + + if (!frenzy40) + { + if (HealthBelowPct(40)) + { + DoCast(me, SPELL_FRENZY); + events.CancelEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN); + frenzy40 = true; + } + } + + if (!frenzy15) + { + if (HealthBelowPct(15)) + { + DoCast(me, SPELL_FRENZY); + events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(7000,14000)); + frenzy15 = true; + } + } + + DoMeleeAttackIfReady(); + } + private: + bool frenzy40; + bool frenzy15; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new boss_lord_valthalakAI(creature); + } +}; + +void AddSC_boss_lord_valthalak() +{ + new boss_lord_valthalak(); +} diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp similarity index 99% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp index b84be2feb17..57c3dfac7ff 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp @@ -227,7 +227,7 @@ public: { creatureList->Respawn(); } - creatureList->AI()->SetData(1, 2); + creatureList->AI()->SetData(1, 1); } me->AddAura(SPELL_ENCAGED_EMBERSEER, me); instance->SetBossState(DATA_PYROGAURD_EMBERSEER, NOT_STARTED); diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_the_beast.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_the_beast.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_urok_doomhowl.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_urok_doomhowl.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp similarity index 97% rename from src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp index f07e426c808..f0d252a5c5e 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp @@ -33,7 +33,13 @@ uint32 const DragonspireMobs[3] = { NPC_BLACKHAND_DREADWEAVER, NPC_BLACKHAND_SUM enum EventIds { EVENT_DARGONSPIRE_ROOM_STORE = 1, - EVENT_DARGONSPIRE_ROOM_CHECK = 2 + EVENT_DARGONSPIRE_ROOM_CHECK = 2, + EVENT_UROK_DOOMHOWL_SPAWNS_1 = 3, + EVENT_UROK_DOOMHOWL_SPAWNS_2 = 4, + EVENT_UROK_DOOMHOWL_SPAWNS_3 = 5, + EVENT_UROK_DOOMHOWL_SPAWNS_4 = 6, + EVENT_UROK_DOOMHOWL_SPAWNS_5 = 7, + EVENT_UROK_DOOMHOWL_SPAWN_IN = 8 }; class instance_blackrock_spire : public InstanceMapScript @@ -275,6 +281,12 @@ public: Emberseer->AI()->SetData(1, 1); } break; + case EVENT_UROK_DOOMHOWL: + if (GetBossState(NPC_UROK_DOOMHOWL) == NOT_STARTED) + { + + } + break; default: break; } diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/blackwing_lair.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackwingLair/blackwing_lair.h rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_ebonroc.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackwingLair/boss_ebonroc.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_firemaw.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackwingLair/boss_firemaw.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_flamegor.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackwingLair/boss_flamegor.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/BlackwingLair/instance_blackwing_lair.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_baron_geddon.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/MoltenCore/boss_baron_geddon.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_garr.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/MoltenCore/boss_garr.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_gehennas.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/MoltenCore/boss_gehennas.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_golemagg.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/MoltenCore/boss_golemagg.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_lucifron.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/MoltenCore/boss_lucifron.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_magmadar.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/MoltenCore/boss_magmadar.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_shazzrah.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/MoltenCore/boss_shazzrah.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/instance_molten_core.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp similarity index 100% rename from src/server/scripts/EasternKingdoms/MoltenCore/instance_molten_core.cpp rename to src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/molten_core.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h similarity index 100% rename from src/server/scripts/EasternKingdoms/MoltenCore/molten_core.h rename to src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h diff --git a/src/server/scripts/EasternKingdoms/CMakeLists.txt b/src/server/scripts/EasternKingdoms/CMakeLists.txt index 41d6179b169..53d37d83610 100644 --- a/src/server/scripts/EasternKingdoms/CMakeLists.txt +++ b/src/server/scripts/EasternKingdoms/CMakeLists.txt @@ -17,6 +17,58 @@ set(scripts_STAT_SRCS EasternKingdoms/AlteracValley/boss_drekthar.cpp EasternKingdoms/AlteracValley/boss_vanndar.cpp EasternKingdoms/AlteracValley/alterac_valley.cpp + EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp + EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp + EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp + EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp + EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp + EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp + EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp + EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp + EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp + EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp + EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h + EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp + EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp + EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp + EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp + EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp + EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp + EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp + EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp + EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp + EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp + EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp + EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp + EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h + EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp + EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp + EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp + EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp + EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp + EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp + EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp + EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp + EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h + EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp + EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp + EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp + EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp EasternKingdoms/Scholomance/boss_the_ravenian.cpp EasternKingdoms/Scholomance/boss_instructor_malicia.cpp EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp @@ -55,37 +107,12 @@ set(scripts_STAT_SRCS EasternKingdoms/Gnomeregan/gnomeregan.cpp EasternKingdoms/Gnomeregan/gnomeregan.h EasternKingdoms/zone_redridge_mountains.cpp - EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp - EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp - EasternKingdoms/BlackrockDepths/blackrock_depths.cpp - EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp - EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp - EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp - EasternKingdoms/BlackrockDepths/boss_grizzle.cpp - EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp - EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp - EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp - EasternKingdoms/BlackrockDepths/blackrock_depths.h - EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp - EasternKingdoms/BlackrockDepths/boss_magmus.cpp EasternKingdoms/zone_ironforge.cpp EasternKingdoms/ScarletEnclave/chapter2.cpp EasternKingdoms/ScarletEnclave/chapter5.cpp EasternKingdoms/ScarletEnclave/chapter1.cpp EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp EasternKingdoms/zone_eastern_plaguelands.cpp - EasternKingdoms/MoltenCore/boss_gehennas.cpp - EasternKingdoms/MoltenCore/boss_lucifron.cpp - EasternKingdoms/MoltenCore/boss_golemagg.cpp - EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp - EasternKingdoms/MoltenCore/boss_baron_geddon.cpp - EasternKingdoms/MoltenCore/boss_ragnaros.cpp - EasternKingdoms/MoltenCore/boss_garr.cpp - EasternKingdoms/MoltenCore/molten_core.h - EasternKingdoms/MoltenCore/instance_molten_core.cpp - EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp - EasternKingdoms/MoltenCore/boss_magmadar.cpp - EasternKingdoms/MoltenCore/boss_shazzrah.cpp EasternKingdoms/Stratholme/boss_baroness_anastari.cpp EasternKingdoms/Stratholme/boss_nerubenkan.cpp EasternKingdoms/Stratholme/instance_stratholme.cpp @@ -117,22 +144,6 @@ set(scripts_STAT_SRCS EasternKingdoms/Uldaman/instance_uldaman.cpp EasternKingdoms/Uldaman/boss_archaedas.cpp EasternKingdoms/zone_swamp_of_sorrows.cpp - EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp - EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp - EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp - EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp - EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp - EasternKingdoms/BlackrockSpire/boss_halycon.cpp - EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp - EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp - EasternKingdoms/BlackrockSpire/boss_gyth.cpp - EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp - EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp - EasternKingdoms/BlackrockSpire/boss_the_beast.cpp - EasternKingdoms/BlackrockSpire/boss_gizrul_the_slavener.cpp - EasternKingdoms/BlackrockSpire/boss_urok_doomhowl.cpp - EasternKingdoms/BlackrockSpire/blackrock_spire.h - EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp EasternKingdoms/SunwellPlateau/sunwell_plateau.h @@ -167,16 +178,6 @@ set(scripts_STAT_SRCS EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp EasternKingdoms/ShadowfangKeep/shadowfang_keep.h EasternKingdoms/zone_burning_steppes.cpp - EasternKingdoms/BlackwingLair/boss_chromaggus.cpp - EasternKingdoms/BlackwingLair/boss_razorgore.cpp - EasternKingdoms/BlackwingLair/boss_firemaw.cpp - EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp - EasternKingdoms/BlackwingLair/boss_ebonroc.cpp - EasternKingdoms/BlackwingLair/instance_blackwing_lair.cpp - EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp - EasternKingdoms/BlackwingLair/boss_nefarian.cpp - EasternKingdoms/BlackwingLair/boss_flamegor.cpp - EasternKingdoms/BlackwingLair/blackwing_lair.h EasternKingdoms/zone_blasted_lands.cpp EasternKingdoms/zone_stormwind_city.cpp EasternKingdoms/ZulAman/boss_halazzi.cpp From f4815fbf808b808854f91e4d9a91145edba28ef9 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Wed, 7 Aug 2013 11:42:13 -0230 Subject: [PATCH 2/4] Scripting/Mana Tombs: Move Yor scripting from EAI to CPP. --- .../world/2013_08_07_02_world_misc.sql | 3 ++ .../ManaTombs/boss_nexusprince_shaffar.cpp | 54 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 sql/updates/world/2013_08_07_02_world_misc.sql diff --git a/sql/updates/world/2013_08_07_02_world_misc.sql b/sql/updates/world/2013_08_07_02_world_misc.sql new file mode 100644 index 00000000000..fd5f9893522 --- /dev/null +++ b/sql/updates/world/2013_08_07_02_world_misc.sql @@ -0,0 +1,3 @@ +-- Move Yor from EAI to CPP +UPDATE `creature_template` SET `AIName`= '', `ScriptName`= 'npc_yor' WHERE `entry`=22930; +DELETE FROM creature_ai_scripts WHERE `creature_id`=22930; diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp index 6c0d653f213..1876cf68b7d 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp @@ -365,9 +365,63 @@ public: }; +enum Yor +{ + SPELL_DOUBLE_BREATH = 38361, + EVENT_DOUBLE_BREATH = 1 +}; + +class npc_yor : public CreatureScript +{ +public: + npc_yor() : CreatureScript("npc_yor") { } + + struct npc_yorAI : public ScriptedAI + { + npc_yorAI(Creature* creature) : ScriptedAI(creature) {} + + void Reset() OVERRIDE {} + + void EnterCombat(Unit* /*who*/) OVERRIDE + { + events.ScheduleEvent(EVENT_DOUBLE_BREATH, urand(6000,9000)); + } + + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + return; + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_DOUBLE_BREATH: + if (me->IsWithinDist(me->GetVictim(), ATTACK_DISTANCE)) + DoCastVictim(SPELL_DOUBLE_BREATH); + events.ScheduleEvent(EVENT_DOUBLE_BREATH, urand(6000,9000)); + break; + default: + break; + } + } + DoMeleeAttackIfReady(); + } + + private: + EventMap events; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new npc_yorAI(creature); + } +}; + void AddSC_boss_nexusprince_shaffar() { new boss_nexusprince_shaffar(); new npc_ethereal_beacon(); new npc_ethereal_apprentice(); + new npc_yor(); } From 0667e890054840cd3e6621554060346f81060741 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Wed, 7 Aug 2013 17:31:36 +0200 Subject: [PATCH 3/4] Scripts/DrakTharonKeep: add some spellscripts, add yells to novos, and do some cosmetic changes --- .../2013_08_07_03_world_drak_tharon_keep.sql | 48 +++++ src/server/scripts/Examples/example_spell.cpp | 4 +- src/server/scripts/Kalimdor/zone_durotar.cpp | 8 +- .../Kalimdor/zone_dustwallow_marsh.cpp | 6 +- .../boss_faction_champions.cpp | 4 +- .../Northrend/DraktharonKeep/boss_novos.cpp | 101 ++++++----- .../DraktharonKeep/boss_trollgore.cpp | 167 +++++++++++++++--- .../DraktharonKeep/drak_tharon_keep.h | 16 +- .../instance_drak_tharon_keep.cpp | 39 +++- .../Northrend/Ulduar/Ulduar/boss_ignis.cpp | 7 +- .../UtgardeKeep/UtgardeKeep/utgarde_keep.cpp | 13 +- src/server/scripts/Northrend/zone_zuldrak.cpp | 6 +- .../Outland/BlackTemple/illidari_council.cpp | 2 +- .../TempestKeep/Eye/boss_astromancer.cpp | 2 +- src/server/scripts/Spells/spell_generic.cpp | 31 ++-- src/server/scripts/Spells/spell_item.cpp | 22 +-- 16 files changed, 350 insertions(+), 126 deletions(-) create mode 100644 sql/updates/world/2013_08_07_03_world_drak_tharon_keep.sql diff --git a/sql/updates/world/2013_08_07_03_world_drak_tharon_keep.sql b/sql/updates/world/2013_08_07_03_world_drak_tharon_keep.sql new file mode 100644 index 00000000000..80f3a08a0e7 --- /dev/null +++ b/sql/updates/world/2013_08_07_03_world_drak_tharon_keep.sql @@ -0,0 +1,48 @@ +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 and `SourceEntry` IN (49555,59807,49618,59809,49405,49380,59803); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(13,1,49555,0,0,31,0,3,27709,0,0,0,0,'','Trollgore - Corpse Explode'), +(13,1,49555,0,1,31,0,3,27753,0,0,0,0,'','Trollgore - Corpse Explode'), +(13,1,49555,0,2,31,0,3,27754,0,0,0,0,'','Trollgore - Corpse Explode'), + +(13,1,59807,0,0,31,0,3,27709,0,0,0,0,'','Trollgore - Corpse Explode'), +(13,1,59807,0,1,31,0,3,27753,0,0,0,0,'','Trollgore - Corpse Explode'), +(13,1,59807,0,2,31,0,3,27754,0,0,0,0,'','Trollgore - Corpse Explode'), + +(13,1,49618,0,0,31,0,3,27709,0,0,0,0,'','Trollgore - Corpse Explode Damage'), +(13,1,49618,0,1,31,0,3,27753,0,0,0,0,'','Trollgore - Corpse Explode Damage'), +(13,1,49618,0,2,31,0,3,27754,0,0,0,0,'','Trollgore - Corpse Explode Damage'), +(13,1,49618,0,3,31,0,4,0,0,0,0,0,'','Trollgore - Corpse Explode Damage'), + +(13,1,59809,0,0,31,0,3,27709,0,0,0,0,'','Trollgore - Corpse Explode Damage'), +(13,1,59809,0,1,31,0,3,27753,0,0,0,0,'','Trollgore - Corpse Explode Damage'), +(13,1,59809,0,2,31,0,3,27754,0,0,0,0,'','Trollgore - Corpse Explode Damage'), +(13,1,59809,0,3,31,0,4,0,0,0,0,0,'','Trollgore - Corpse Explode Damage'), + +(13,1,49405,0,0,31,0,3,26630,0,0,0,0,'','Trollgore - Invader Taunt Trigger'), + +(13,3,49380,0,0,31,0,3,27709,0,0,0,0,'','Trollgore - Consume'), +(13,3,49380,0,1,31,0,3,27753,0,0,0,0,'','Trollgore - Consume'), +(13,3,49380,0,2,31,0,3,27754,0,0,0,0,'','Trollgore - Consume'), +(13,3,49380,0,3,31,0,4,0,0,0,0,0,'','Trollgore - Consume'), + +(13,3,59803,0,0,31,0,3,27709,0,0,0,0,'','Trollgore - Consume'), +(13,3,59803,0,1,31,0,3,27753,0,0,0,0,'','Trollgore - Consume'), +(13,3,59803,0,2,31,0,3,27754,0,0,0,0,'','Trollgore - Consume'), +(13,3,59803,0,3,31,0,4,0,0,0,0,0,'','Trollgore - Consume'); + +DELETE FROM `spell_script_names` WHERE `spell_id` IN (49555,59807,49405,49380,59803,59910); +INSERT INTO `spell_script_names`(`spell_id`, `ScriptName`) VALUES +(49555,'spell_trollgore_corpse_explode'), +(59807,'spell_trollgore_corpse_explode'), +(49405,'spell_trollgore_invader_taunt'), +(49380,'spell_trollgore_consume'), +(59803,'spell_trollgore_consume'), +(59910,'spell_novos_summon_minions'); + +DELETE FROM `creature_text` WHERE `entry`=26631 AND `groupid`=5; +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES +(26631, 5, 0, '%s calls for assistance!', 41, 0, 100, 0, 0, 0, 'Novos the Summoner - EMOTE_SUMMONING_ADDS'); + +DELETE FROM `spelldifficulty_dbc` WHERE `id`=49618; +INSERT INTO `spelldifficulty_dbc` (`id`, `spellid0`, `spellid1`) VALUES +(49618, 49618, 59809); diff --git a/src/server/scripts/Examples/example_spell.cpp b/src/server/scripts/Examples/example_spell.cpp index 30206ec555c..8e22c4b66c8 100644 --- a/src/server/scripts/Examples/example_spell.cpp +++ b/src/server/scripts/Examples/example_spell.cpp @@ -50,7 +50,7 @@ class spell_ex_5581 : public SpellScriptLoader // function called on server startup // checks if script has data required for it to work - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { // check if spellid 70522 exists in dbc, we will trigger it later if (!sSpellMgr->GetSpellInfo(SPELL_TRIGGERED)) @@ -208,7 +208,7 @@ class spell_ex_66244 : public SpellScriptLoader PrepareAuraScript(spell_ex_66244AuraScript); // function called on server startup // checks if script has data required for it to work - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { // check if spellid exists in dbc, we will trigger it later if (!sSpellMgr->GetSpellInfo(SPELL_TRIGGERED)) diff --git a/src/server/scripts/Kalimdor/zone_durotar.cpp b/src/server/scripts/Kalimdor/zone_durotar.cpp index 63309c0502d..1eec2c826ea 100644 --- a/src/server/scripts/Kalimdor/zone_durotar.cpp +++ b/src/server/scripts/Kalimdor/zone_durotar.cpp @@ -448,7 +448,8 @@ class spell_mount_check : public SpellScriptLoader class spell_mount_check_AuraScript : public AuraScript { PrepareAuraScript(spell_mount_check_AuraScript) - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_MOUNTING_CHECK)) return false; @@ -495,7 +496,8 @@ class spell_voljin_war_drums : public SpellScriptLoader class spell_voljin_war_drums_SpellScript : public SpellScript { PrepareSpellScript(spell_voljin_war_drums_SpellScript) - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_MOTIVATE_1)) return false; @@ -552,7 +554,7 @@ class spell_voodoo : public SpellScriptLoader { PrepareSpellScript(spell_voodoo_SpellScript) - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_BREW) || !sSpellMgr->GetSpellInfo(SPELL_GHOSTLY) || !sSpellMgr->GetSpellInfo(SPELL_HEX1) || !sSpellMgr->GetSpellInfo(SPELL_HEX2) || diff --git a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp index b9d3c6f1cc6..33cce095abf 100644 --- a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp +++ b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp @@ -612,7 +612,7 @@ class spell_ooze_zap : public SpellScriptLoader { PrepareSpellScript(spell_ooze_zap_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_OOZE_ZAP)) return false; @@ -659,7 +659,7 @@ class spell_ooze_zap_channel_end : public SpellScriptLoader { PrepareSpellScript(spell_ooze_zap_channel_end_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_OOZE_ZAP_CHANNEL_END)) return false; @@ -695,7 +695,7 @@ class spell_energize_aoe : public SpellScriptLoader { PrepareSpellScript(spell_energize_aoe_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_ENERGIZED)) return false; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp index 3dc537b4c23..ce0f8e4778c 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp @@ -2312,7 +2312,7 @@ class spell_toc_bloodlust : public SpellScriptLoader { PrepareSpellScript(spell_toc_bloodlust_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(AURA_SATED)) return false; @@ -2353,7 +2353,7 @@ class spell_toc_heroism : public SpellScriptLoader { PrepareSpellScript(spell_toc_heroism_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(AURA_EXHAUSTION)) return false; diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp index 785038137d9..4b420f1024e 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp @@ -20,21 +20,14 @@ #include "ScriptedCreature.h" #include "drak_tharon_keep.h" -enum Misc +enum Yells { - ACTION_RESET_CRYSTALS, - ACTION_ACTIVATE_CRYSTAL, - ACTION_DEACTIVATE, - EVENT_ATTACK, - EVENT_SUMMON_MINIONS, - DATA_NOVOS_ACHIEV -}; - -enum Creatures -{ - NPC_FETID_TROLL_CORPSE = 27598, - NPC_RISEN_SHADOWCASTER = 27600, - NPC_HULKING_CORPSE = 27597 + SAY_AGGRO = 0, + SAY_KILL = 1, + SAY_DEATH = 2, + SAY_SUMMONING_ADDS = 3, // unused + SAY_ARCANE_FIELD = 4, + EMOTE_SUMMONING_ADDS = 5 // unused }; enum Spells @@ -46,6 +39,7 @@ enum Spells SPELL_SUMMON_FETID_TROLL_CORPSE = 49103, SPELL_SUMMON_HULKING_CORPSE = 49104, SPELL_SUMMON_CRYSTAL_HANDLER = 49179, + SPELL_SUMMON_COPY_OF_MINIONS = 59933, SPELL_ARCANE_BLAST = 49198, SPELL_BLIZZARD = 49034, @@ -54,6 +48,16 @@ enum Spells SPELL_SUMMON_MINIONS = 59910 }; +enum Misc +{ + ACTION_RESET_CRYSTALS, + ACTION_ACTIVATE_CRYSTAL, + ACTION_DEACTIVATE, + EVENT_ATTACK, + EVENT_SUMMON_MINIONS, + DATA_NOVOS_ACHIEV +}; + struct SummonerInfo { uint32 data, spell, timer; @@ -92,6 +96,7 @@ public: void EnterCombat(Unit* /* victim */) OVERRIDE { _EnterCombat(); + Talk(SAY_AGGRO); SetCrystalsStatus(true); SetSummonerStatus(true); @@ -107,6 +112,18 @@ public: DoStartNoMovement(target); } + void KilledUnit(Unit* who) OVERRIDE + { + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_KILL); + } + + void JustDied(Unit* killer) OVERRIDE + { + _JustDied(); + Talk(SAY_DEATH); + } + void UpdateAI(uint32 diff) OVERRIDE { if (!UpdateVictim() || _bubbled) @@ -210,9 +227,6 @@ public: void SetCrystalStatus(GameObject* crystal, bool active) { - if (!crystal) - return; - crystal->SetGoState(active ? GO_STATE_ACTIVE : GO_STATE_READY); if (Creature* crystalChannelTarget = crystal->FindNearestCreature(NPC_CRYSTAL_CHANNEL_TARGET, 5.0f)) { @@ -236,6 +250,7 @@ public: if (++_crystalHandlerCount >= 4) { + Talk(SAY_ARCANE_FIELD); SetSummonerStatus(false); SetBubbled(false); events.ScheduleEvent(EVENT_ATTACK, 3000); @@ -332,42 +347,44 @@ public: } }; -enum SummonMinions +class spell_novos_summon_minions : public SpellScriptLoader { - SPELL_COPY_OF_SUMMON_MINIONS = 59933 -}; + public: + spell_novos_summon_minions() : SpellScriptLoader("spell_novos_summon_minions") { } -class spell_summon_minions : public SpellScriptLoader -{ -public: - spell_summon_minions() : SpellScriptLoader("spell_summon_minions") { } - - class spell_summon_minions_SpellScript : public SpellScript - { - PrepareSpellScript(spell_summon_minions_SpellScript); - - void HandleScript(SpellEffIndex /*effIndex*/) + class spell_novos_summon_minions_SpellScript : public SpellScript { - GetCaster()->CastSpell((Unit*)NULL, SPELL_COPY_OF_SUMMON_MINIONS, true); - GetCaster()->CastSpell((Unit*)NULL, SPELL_COPY_OF_SUMMON_MINIONS, true); - } + PrepareSpellScript(spell_novos_summon_minions_SpellScript); - void Register() OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_COPY_OF_MINIONS)) + return false; + return true; + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + for (uint8 i = 0; i < 2; ++i) + GetCaster()->CastSpell((Unit*)NULL, SPELL_SUMMON_COPY_OF_MINIONS, true); + } + + void Register() OVERRIDE + { + OnEffectHitTarget += SpellEffectFn(spell_novos_summon_minions_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const OVERRIDE { - OnEffectHitTarget += SpellEffectFn(spell_summon_minions_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + return new spell_novos_summon_minions_SpellScript(); } - }; - - SpellScript* GetSpellScript() const OVERRIDE - { - return new spell_summon_minions_SpellScript(); - } }; void AddSC_boss_novos() { new boss_novos(); new npc_crystal_channel_target(); - new spell_summon_minions(); + new spell_novos_summon_minions(); new achievement_oh_novos(); } diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp index d126340ef51..6688f704a57 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp @@ -26,35 +26,36 @@ enum Spells { - SPELL_INFECTED_WOUND = 49637, - SPELL_CRUSH = 49639, - SPELL_CORPSE_EXPLODE = 49555, - SPELL_CONSUME = 49380, - SPELL_CONSUME_AURA = 49381, - // Heroic spells - H_SPELL_CORPSE_EXPLODE = 59807, - H_SPELL_CONSUME = 59803, - H_SPELL_CONSUME_AURA = 59805, + SPELL_INFECTED_WOUND = 49637, + SPELL_CRUSH = 49639, + SPELL_CORPSE_EXPLODE = 49555, + SPELL_CORPSE_EXPLODE_DAMAGE = 49618, + SPELL_CONSUME = 49380, + SPELL_CONSUME_BUFF = 49381, + SPELL_CONSUME_BUFF_H = 59805, + + SPELL_SUMMON_INVADER_A = 49456, + SPELL_SUMMON_INVADER_B = 49457, + //SPELL_SUMMON_INVADER_C = 49458, // can't find any sniffs + + H_SPELL_CORPSE_EXPLODE = 59807, + H_SPELL_CONSUME = 59803, }; +#define SPELL_CONSUME_BUFF_HELPER DUNGEON_MODE(SPELL_CONSUME_BUFF, SPELL_CONSUME_BUFF_H) + enum Yells { - SAY_AGGRO = 0, - SAY_KILL = 1, - SAY_CONSUME = 2, - SAY_EXPLODE = 3, - SAY_DEATH = 4 -}; - -enum Creatures -{ - NPC_DRAKKARI_INVADER_1 = 27753, - NPC_DRAKKARI_INVADER_2 = 27709 + SAY_AGGRO = 0, + SAY_KILL = 1, + SAY_CONSUME = 2, + SAY_EXPLODE = 3, + SAY_DEATH = 4 }; enum Misc { - DATA_CONSUMPTION_JUNCTION = 1 + DATA_CONSUMPTION_JUNCTION = 1 }; Position AddSpawnPoint = { -260.493011f, -622.968018f, 26.605301f, 3.036870f }; @@ -97,9 +98,9 @@ public: lSummons.DespawnAll(); - me->RemoveAura(DUNGEON_MODE(SPELL_CONSUME_AURA, H_SPELL_CONSUME_AURA)); + me->RemoveAura(SPELL_CONSUME_BUFF_HELPER); - instance->SetData(DATA_TROLLGORE, NOT_STARTED); + instance->SetBossState(DATA_TROLLGORE, NOT_STARTED); } void EnterCombat(Unit* /*who*/) OVERRIDE @@ -118,7 +119,7 @@ public: { uint32 spawnNumber = urand(2, DUNGEON_MODE(3, 5)); for (uint8 i = 0; i < spawnNumber; ++i) - DoSummon(RAND(NPC_DRAKKARI_INVADER_1, NPC_DRAKKARI_INVADER_2), AddSpawnPoint, 0, TEMPSUMMON_DEAD_DESPAWN); + DoSummon(RAND(NPC_DRAKKARI_INVADER_A, NPC_DRAKKARI_INVADER_B), AddSpawnPoint, 0, TEMPSUMMON_DEAD_DESPAWN); uiSpawnTimer = urand(30*IN_MILLISECONDS, 40*IN_MILLISECONDS); } else uiSpawnTimer -= diff; @@ -131,7 +132,7 @@ public: if (consumptionJunction) { - Aura* ConsumeAura = me->GetAura(DUNGEON_MODE(SPELL_CONSUME_AURA, H_SPELL_CONSUME_AURA)); + Aura* ConsumeAura = me->GetAura(SPELL_CONSUME_BUFF_HELPER); if (ConsumeAura && ConsumeAura->GetStackAmount() > 9) consumptionJunction = false; } @@ -197,6 +198,119 @@ public: } }; +// 49380, 59803 - Consume +class spell_trollgore_consume : public SpellScriptLoader +{ + public: + spell_trollgore_consume() : SpellScriptLoader("spell_trollgore_consume") { } + + class spell_trollgore_consume_SpellScript : public SpellScript + { + PrepareSpellScript(spell_trollgore_consume_SpellScript); + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(SPELL_CONSUME_BUFF)) + return false; + return true; + } + + void HandleConsume(SpellEffIndex /*effIndex*/) + { + if (Unit* target = GetHitUnit()) + target->CastSpell(GetCaster(), SPELL_CONSUME_BUFF, true); + } + + void Register() OVERRIDE + { + OnEffectHitTarget += SpellEffectFn(spell_trollgore_consume_SpellScript::HandleConsume, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const OVERRIDE + { + return new spell_trollgore_consume_SpellScript(); + } +}; + +// 49555, 59807 - Corpse Explode +class spell_trollgore_corpse_explode : public SpellScriptLoader +{ + public: + spell_trollgore_corpse_explode() : SpellScriptLoader("spell_trollgore_corpse_explode") { } + + class spell_trollgore_corpse_explode_AuraScript : public AuraScript + { + PrepareAuraScript(spell_trollgore_corpse_explode_AuraScript); + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(SPELL_CORPSE_EXPLODE_DAMAGE)) + return false; + return true; + } + + void PeriodicTick(AuraEffect const* aurEff) + { + if (aurEff->GetTickNumber() == 2) + if (Unit* caster = GetCaster()) + caster->CastSpell(GetTarget(), SPELL_CORPSE_EXPLODE_DAMAGE, true, NULL, aurEff); + } + + void HandleRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) + { + if (Creature* target = GetTarget()->ToCreature()) + target->DespawnOrUnsummon(); + } + + void Register() OVERRIDE + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_trollgore_corpse_explode_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); + AfterEffectRemove += AuraEffectRemoveFn(spell_trollgore_corpse_explode_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL); + } + }; + + AuraScript* GetAuraScript() const OVERRIDE + { + return new spell_trollgore_corpse_explode_AuraScript(); + } +}; + +// 49405 - Invader Taunt Trigger +class spell_trollgore_invader_taunt : public SpellScriptLoader +{ + public: + spell_trollgore_invader_taunt() : SpellScriptLoader("spell_trollgore_invader_taunt") { } + + class spell_trollgore_invader_taunt_SpellScript : public SpellScript + { + PrepareSpellScript(spell_trollgore_invader_taunt_SpellScript); + + bool Validate(SpellInfo const* spellInfo) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].CalcValue())) + return false; + return true; + } + + void HandleTaunt(SpellEffIndex /*effIndex*/) + { + if (Unit* target = GetHitUnit()) + target->CastSpell(GetCaster(), uint32(GetEffectValue()), true); + } + + void Register() OVERRIDE + { + OnEffectHitTarget += SpellEffectFn(spell_trollgore_invader_taunt_SpellScript::HandleTaunt, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const OVERRIDE + { + return new spell_trollgore_invader_taunt_SpellScript(); + } +}; + class achievement_consumption_junction : public AchievementCriteriaScript { public: @@ -220,5 +334,8 @@ class achievement_consumption_junction : public AchievementCriteriaScript void AddSC_boss_trollgore() { new boss_trollgore(); + new spell_trollgore_consume(); + new spell_trollgore_corpse_explode(); + new spell_trollgore_invader_taunt(); new achievement_consumption_junction(); } diff --git a/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h b/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h index cc0fb9a0090..072a5f2f534 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h +++ b/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h @@ -36,6 +36,10 @@ enum DataTypes // Additional data //DATA_KING_DRED_ACHIEV, + DATA_TROLLGORE_INVADER_SUMMONER_1, + DATA_TROLLGORE_INVADER_SUMMONER_2, + DATA_TROLLGORE_INVADER_SUMMONER_3, + DATA_NOVOS_CRYSTAL_1, DATA_NOVOS_CRYSTAL_2, DATA_NOVOS_CRYSTAL_3, @@ -55,13 +59,23 @@ enum CreatureIds NPC_KING_DRED = 27483, NPC_THARON_JA = 26632, + // Trollgore + NPC_DRAKKARI_INVADER_A = 27709, + NPC_DRAKKARI_INVADER_B = 27753, + NPC_DRAKKARI_INVADER_C = 27754, + // Novos NPC_CRYSTAL_CHANNEL_TARGET = 26712, NPC_CRYSTAL_HANDLER = 26627, + NPC_HULKING_CORPSE = 27597, + NPC_FETID_TROLL_CORPSE = 27598, + NPC_RISEN_SHADOWCASTER = 27600, // King Dred NPC_DRAKKARI_GUTRIPPER = 26641, - NPC_DRAKKARI_SCYTHECLAW = 26628 + NPC_DRAKKARI_SCYTHECLAW = 26628, + + NPC_WORLD_TRIGGER = 22515 }; enum GameObjectIds diff --git a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp index 99a4ce77623..e2ed883ad08 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp @@ -36,11 +36,12 @@ class instance_drak_tharon_keep : public InstanceMapScript KingDredGUID = 0; TharonJaGUID = 0; + memset(TrollgoreInvaderSummonerGuids, 0, 4 * sizeof(uint64)); memset(NovosCrystalGUIDs, 0, 4 * sizeof(uint64)); memset(NovosSummonerGUIDs, 0, 4 * sizeof(uint64)); } - void OnCreatureCreate(Creature* creature) + void OnCreatureCreate(Creature* creature) OVERRIDE { switch (creature->GetEntry()) { @@ -56,6 +57,9 @@ class instance_drak_tharon_keep : public InstanceMapScript case NPC_THARON_JA: TharonJaGUID = creature->GetGUID(); break; + case NPC_WORLD_TRIGGER: + InitializeTrollgoreInvaderSummoner(creature); + break; case NPC_CRYSTAL_CHANNEL_TARGET: InitializeNovosSummoner(creature); break; @@ -64,31 +68,43 @@ class instance_drak_tharon_keep : public InstanceMapScript } } - void OnGameObjectCreate(GameObject* go) + void OnGameObjectCreate(GameObject* go) OVERRIDE { switch (go->GetEntry()) { case GO_NOVOS_CRYSTAL_1: NovosCrystalGUIDs[0] = go->GetGUID(); - go->SetGoState(GO_STATE_READY); break; case GO_NOVOS_CRYSTAL_2: NovosCrystalGUIDs[1] = go->GetGUID(); - go->SetGoState(GO_STATE_READY); break; case GO_NOVOS_CRYSTAL_3: NovosCrystalGUIDs[2] = go->GetGUID(); - go->SetGoState(GO_STATE_READY); break; case GO_NOVOS_CRYSTAL_4: NovosCrystalGUIDs[3] = go->GetGUID(); - go->SetGoState(GO_STATE_READY); break; default: break; } } + void InitializeTrollgoreInvaderSummoner(Creature* creature) + { + float y = creature->GetPositionY(); + float z = creature->GetPositionZ(); + + if (z < 50.0f) + return; + + if (y < -650.0f && y > -660.0f) + TrollgoreInvaderSummonerGuids[0] = creature->GetGUID(); + else if (y < -660.0f && y > -670.0f) + TrollgoreInvaderSummonerGuids[1] = creature->GetGUID(); + else if (y < -675.0f && y > -685.0f) + TrollgoreInvaderSummonerGuids[2] = creature->GetGUID(); + } + void InitializeNovosSummoner(Creature* creature) { float x = creature->GetPositionX(); @@ -117,6 +133,10 @@ class instance_drak_tharon_keep : public InstanceMapScript return KingDredGUID; case DATA_THARON_JA: return TharonJaGUID; + case DATA_TROLLGORE_INVADER_SUMMONER_1: + case DATA_TROLLGORE_INVADER_SUMMONER_2: + case DATA_TROLLGORE_INVADER_SUMMONER_3: + return TrollgoreInvaderSummonerGuids[type - DATA_TROLLGORE_INVADER_SUMMONER_1]; case DATA_NOVOS_CRYSTAL_1: case DATA_NOVOS_CRYSTAL_2: case DATA_NOVOS_CRYSTAL_3: @@ -132,14 +152,14 @@ class instance_drak_tharon_keep : public InstanceMapScript return 0; } - void OnUnitDeath(Unit* unit) + void OnUnitDeath(Unit* unit) OVERRIDE { if (unit->GetEntry() == NPC_CRYSTAL_HANDLER) if (Creature* novos = instance->GetCreature(NovosGUID)) novos->AI()->DoAction(ACTION_CRYSTAL_HANDLER_DIED); } - std::string GetSaveData() + std::string GetSaveData() OVERRIDE { OUT_SAVE_INST_DATA; @@ -150,7 +170,7 @@ class instance_drak_tharon_keep : public InstanceMapScript return saveStream.str(); } - void Load(char const* str) + void Load(char const* str) OVERRIDE { if (!str) { @@ -188,6 +208,7 @@ class instance_drak_tharon_keep : public InstanceMapScript uint64 KingDredGUID; uint64 TharonJaGUID; + uint64 TrollgoreInvaderSummonerGuids[3]; uint64 NovosCrystalGUIDs[4]; uint64 NovosSummonerGUIDs[4]; }; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp index d8578b31abb..45c35741c3c 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp @@ -432,11 +432,10 @@ class spell_ignis_slag_pot : public SpellScriptLoader { PrepareAuraScript(spell_ignis_slag_pot_AuraScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { - if (!sSpellMgr->GetSpellInfo(SPELL_SLAG_POT_DAMAGE)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_SLAG_IMBUED)) + if (!sSpellMgr->GetSpellInfo(SPELL_SLAG_POT_DAMAGE) + || !sSpellMgr->GetSpellInfo(SPELL_SLAG_IMBUED)) return false; return true; } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp index 9c086d8bd81..fa28695ff62 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp @@ -163,6 +163,7 @@ enum TickingTimeBomb { SPELL_TICKING_TIME_BOMB_EXPLODE = 59687 }; + class spell_ticking_time_bomb : public SpellScriptLoader { public: @@ -172,9 +173,11 @@ class spell_ticking_time_bomb : public SpellScriptLoader { PrepareAuraScript(spell_ticking_time_bomb_AuraScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { - return (bool) sSpellMgr->GetSpellInfo(SPELL_TICKING_TIME_BOMB_EXPLODE); + if (!sSpellMgr->GetSpellInfo(SPELL_TICKING_TIME_BOMB_EXPLODE)) + return false; + return true; } void HandleOnEffectRemove(AuraEffect const* /* aurEff */, AuraEffectHandleModes /* mode */) @@ -210,9 +213,11 @@ class spell_fixate : public SpellScriptLoader { PrepareSpellScript(spell_fixate_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { - return (bool) sSpellMgr->GetSpellInfo(SPELL_FIXATE_TRIGGER); + if (!sSpellMgr->GetSpellInfo(SPELL_FIXATE_TRIGGER)) + return false; + return true; } void HandleScriptEffect(SpellEffIndex /*effIndex*/) diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp index 60ae487daa7..5e9a19685bc 100644 --- a/src/server/scripts/Northrend/zone_zuldrak.cpp +++ b/src/server/scripts/Northrend/zone_zuldrak.cpp @@ -1609,7 +1609,7 @@ class spell_random_ingredient_aura : public SpellScriptLoader { PrepareAuraScript(spell_random_ingredient_aura_AuraScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_RANDOM_INGREDIENT_EASY) || !sSpellMgr->GetSpellInfo(SPELL_RANDOM_INGREDIENT_MEDIUM) || !sSpellMgr->GetSpellInfo(SPELL_RANDOM_INGREDIENT_HARD)) return false; @@ -1656,7 +1656,7 @@ class spell_random_ingredient : public SpellScriptLoader { PrepareSpellScript(spell_random_ingredient_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_FETCH_KNOTROOT) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_PICKLED_EAGLE_EGG) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SPECKLED_GUANO) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_WITHERED_BATWING) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SEASONED_SLIDER_CIDER) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_PULVERIZED_GARGOYLE_TEETH) || @@ -1720,7 +1720,7 @@ class spell_pot_check : public SpellScriptLoader { PrepareSpellScript(spell_pot_check_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_FETCH_KNOTROOT) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_PICKLED_EAGLE_EGG) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SPECKLED_GUANO) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_WITHERED_BATWING) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SEASONED_SLIDER_CIDER) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_PULVERIZED_GARGOYLE_TEETH) || diff --git a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp index 3d7a143d59e..290641437f3 100644 --- a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp +++ b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp @@ -903,7 +903,7 @@ public: { PrepareAuraScript(spell_boss_lady_malande_shield_AuraScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { return sSpellMgr->GetSpellInfo(SPELL_REFLECTIVE_SHIELD_T); } diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp index 597cccda102..3c8627c7058 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp @@ -519,7 +519,7 @@ class spell_astromancer_wrath_of_the_astromancer : public SpellScriptLoader { PrepareAuraScript(spell_astromancer_wrath_of_the_astromancer_AuraScript); - bool Validate(SpellInfo const* /*SpellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_WRATH_OF_THE_ASTROMANCER_DOT)) return false; diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 2e6594714c9..98ed2c8b331 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -619,7 +619,7 @@ class spell_gen_cannibalize : public SpellScriptLoader { PrepareSpellScript(spell_gen_cannibalize_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_CANNIBALIZE_TRIGGERED)) return false; @@ -672,7 +672,7 @@ class spell_gen_chaos_blast : public SpellScriptLoader { PrepareSpellScript(spell_gen_chaos_blast_SpellScript) - bool Validate(SpellInfo const* /*SpellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_CHAOS_BLAST)) return false; @@ -779,7 +779,7 @@ class spell_gen_clone_weapon_aura : public SpellScriptLoader uint32 prevItem; - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_AURA) || !sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_2_AURA) || @@ -1021,9 +1021,10 @@ class spell_gen_dalaran_disguise : public SpellScriptLoader class spell_gen_dalaran_disguise_SpellScript : public SpellScript { PrepareSpellScript(spell_gen_dalaran_disguise_SpellScript); - bool Validate(SpellInfo const* spellEntry) OVERRIDE + + bool Validate(SpellInfo const* spellInfo) OVERRIDE { - switch (spellEntry->Id) + switch (spellInfo->Id) { case SPELL_SUNREAVER_DISGUISE_TRIGGER: if (!sSpellMgr->GetSpellInfo(SPELL_SUNREAVER_DISGUISE_FEMALE) || @@ -1093,7 +1094,7 @@ class spell_gen_damage_reduction_aura : public SpellScriptLoader { PrepareAuraScript(spell_gen_damage_reduction_AuraScript); - bool Validate(SpellInfo const* /*SpellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_DAMAGE_REDUCTION_AURA)) return false; @@ -1148,7 +1149,7 @@ class spell_gen_defend : public SpellScriptLoader { PrepareAuraScript(spell_gen_defend_AuraScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_1)) return false; @@ -1270,7 +1271,7 @@ class spell_gen_divine_storm_cd_reset : public SpellScriptLoader return GetCaster()->GetTypeId() == TYPEID_PLAYER; } - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_DIVINE_STORM)) return false; @@ -1348,7 +1349,7 @@ class spell_gen_dummy_trigger : public SpellScriptLoader { PrepareSpellScript(spell_gen_dummy_trigger_SpellScript); - bool Validate(SpellInfo const* /*SpellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_PERSISTANT_SHIELD_TRIGGERED) || !sSpellMgr->GetSpellInfo(SPELL_PERSISTANT_SHIELD)) @@ -1441,7 +1442,7 @@ class spell_gen_elune_candle : public SpellScriptLoader class spell_gen_elune_candle_SpellScript : public SpellScript { PrepareSpellScript(spell_gen_elune_candle_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_HEAD) || !sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_CHEST) || @@ -1508,7 +1509,7 @@ class spell_gen_gadgetzan_transporter_backfire : public SpellScriptLoader { PrepareSpellScript(spell_gen_gadgetzan_transporter_backfire_SpellScript) - bool Validate(SpellInfo const* /*SpellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_MALFUNCTION_POLYMORPH) || !sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_EVIL_TWIN) || @@ -1609,7 +1610,7 @@ class spell_gen_gnomish_transporter : public SpellScriptLoader { PrepareSpellScript(spell_gen_gnomish_transporter_SpellScript) - bool Validate(SpellInfo const* /*SpellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_SUCCESS) || !sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_FAILURE)) @@ -3204,7 +3205,7 @@ class spell_gen_summon_tournament_mount : public SpellScriptLoader { PrepareSpellScript(spell_gen_summon_tournament_mount_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_LANCE_EQUIPPED)) return false; @@ -3253,7 +3254,7 @@ class spell_gen_tournament_duel : public SpellScriptLoader { PrepareSpellScript(spell_gen_tournament_duel_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_ON_TOURNAMENT_MOUNT) || !sSpellMgr->GetSpellInfo(SPELL_MOUNTED_DUEL)) @@ -3345,7 +3346,7 @@ class spell_pvp_trinket_wotf_shared_cd : public SpellScriptLoader return GetCaster()->GetTypeId() == TYPEID_PLAYER; } - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER) || !sSpellMgr->GetSpellInfo(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER_WOTF)) diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index 09be427d330..9f7386ab7e6 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -47,7 +47,7 @@ class spell_item_trigger_spell : public SpellScriptLoader public: spell_item_trigger_spell_SpellScript(uint32 triggeredSpellId) : SpellScript(), _triggeredSpellId(triggeredSpellId) { } - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(_triggeredSpellId)) return false; @@ -322,7 +322,7 @@ class spell_item_deviate_fish : public SpellScriptLoader return GetCaster()->GetTypeId() == TYPEID_PLAYER; } - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { for (uint32 spellId = SPELL_SLEEPY; spellId <= SPELL_HEALTHY_SPIRIT; ++spellId) if (!sSpellMgr->GetSpellInfo(spellId)) @@ -367,7 +367,7 @@ class spell_item_flask_of_the_north : public SpellScriptLoader { PrepareSpellScript(spell_item_flask_of_the_north_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_FLASK_OF_THE_NORTH_SP) || !sSpellMgr->GetSpellInfo(SPELL_FLASK_OF_THE_NORTH_AP) || !sSpellMgr->GetSpellInfo(SPELL_FLASK_OF_THE_NORTH_STR)) return false; @@ -436,7 +436,7 @@ class spell_item_gnomish_death_ray : public SpellScriptLoader { PrepareSpellScript(spell_item_gnomish_death_ray_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_GNOMISH_DEATH_RAY_SELF) || !sSpellMgr->GetSpellInfo(SPELL_GNOMISH_DEATH_RAY_TARGET)) return false; @@ -492,7 +492,7 @@ class spell_item_make_a_wish : public SpellScriptLoader return GetCaster()->GetTypeId() == TYPEID_PLAYER; } - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_MR_PINCHYS_BLESSING) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_MIGHTY_MR_PINCHY) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_FURIOUS_MR_PINCHY) || !sSpellMgr->GetSpellInfo(SPELL_TINY_MAGICAL_CRAWDAD) || !sSpellMgr->GetSpellInfo(SPELL_MR_PINCHYS_GIFT)) return false; @@ -646,7 +646,7 @@ class spell_item_net_o_matic : public SpellScriptLoader { PrepareSpellScript(spell_item_net_o_matic_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_NET_O_MATIC_TRIGGERED1) || !sSpellMgr->GetSpellInfo(SPELL_NET_O_MATIC_TRIGGERED2) || !sSpellMgr->GetSpellInfo(SPELL_NET_O_MATIC_TRIGGERED3)) return false; @@ -703,7 +703,7 @@ class spell_item_noggenfogger_elixir : public SpellScriptLoader return GetCaster()->GetTypeId() == TYPEID_PLAYER; } - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED1) || !sSpellMgr->GetSpellInfo(SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED2) || !sSpellMgr->GetSpellInfo(SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED3)) return false; @@ -788,7 +788,7 @@ class spell_item_savory_deviate_delight : public SpellScriptLoader return GetCaster()->GetTypeId() == TYPEID_PLAYER; } - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { for (uint32 spellId = SPELL_FLIP_OUT_MALE; spellId <= SPELL_YAAARRRR_FEMALE; ++spellId) if (!sSpellMgr->GetSpellInfo(spellId)) @@ -1112,7 +1112,7 @@ class spell_item_six_demon_bag : public SpellScriptLoader { PrepareSpellScript(spell_item_six_demon_bag_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_FROSTBOLT) || !sSpellMgr->GetSpellInfo(SPELL_POLYMORPH) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_FELHOUND_MINION) || !sSpellMgr->GetSpellInfo(SPELL_FIREBALL) || !sSpellMgr->GetSpellInfo(SPELL_CHAIN_LIGHTNING) || !sSpellMgr->GetSpellInfo(SPELL_ENVELOPING_WINDS)) return false; @@ -1213,7 +1213,7 @@ class spell_item_underbelly_elixir : public SpellScriptLoader { return GetCaster()->GetTypeId() == TYPEID_PLAYER; } - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_UNDERBELLY_ELIXIR_TRIGGERED1) || !sSpellMgr->GetSpellInfo(SPELL_UNDERBELLY_ELIXIR_TRIGGERED2) || !sSpellMgr->GetSpellInfo(SPELL_UNDERBELLY_ELIXIR_TRIGGERED3)) return false; @@ -1491,7 +1491,7 @@ class spell_item_vanquished_clutches : public SpellScriptLoader { PrepareSpellScript(spell_item_vanquished_clutches_SpellScript); - bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { if (!sSpellMgr->GetSpellInfo(SPELL_CRUSHER) || !sSpellMgr->GetSpellInfo(SPELL_CONSTRICTOR) || !sSpellMgr->GetSpellInfo(SPELL_CORRUPTOR)) return false; From 1e8fd6489d67fa3e0ed73c7391970cd9a9e74383 Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Wed, 7 Aug 2013 18:44:23 +0200 Subject: [PATCH 4/4] Core: Fix non pch build --- src/server/game/Battlegrounds/Battleground.h | 1 + src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp | 2 +- .../scripts/Northrend/DraktharonKeep/boss_trollgore.cpp | 5 +++-- .../Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp | 2 ++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h index b0ada0fe24f..1f180542016 100644 --- a/src/server/game/Battlegrounds/Battleground.h +++ b/src/server/game/Battlegrounds/Battleground.h @@ -27,6 +27,7 @@ class Creature; class GameObject; class Group; class Player; +class Unit; class WorldPacket; class BattlegroundMap; diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp index 4b420f1024e..0160359f0f2 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp @@ -118,7 +118,7 @@ public: Talk(SAY_KILL); } - void JustDied(Unit* killer) OVERRIDE + void JustDied(Unit* /*killer*/) OVERRIDE { _JustDied(); Talk(SAY_DEATH); diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp index 6688f704a57..225fa79b1fd 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp @@ -21,7 +21,8 @@ #include "ScriptMgr.h" #include "ScriptedCreature.h" -#include "SpellAuras.h" +#include "SpellScript.h" +#include "SpellAuraEffects.h" #include "drak_tharon_keep.h" enum Spells @@ -257,7 +258,7 @@ class spell_trollgore_corpse_explode : public SpellScriptLoader caster->CastSpell(GetTarget(), SPELL_CORPSE_EXPLODE_DAMAGE, true, NULL, aurEff); } - void HandleRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) + void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { if (Creature* target = GetTarget()->ToCreature()) target->DespawnOrUnsummon(); diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp index 1876cf68b7d..83c0cbf04d5 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp @@ -392,6 +392,8 @@ public: if (!UpdateVictim()) return; + events.Update(diff); + while (uint32 eventId = events.ExecuteEvent()) { switch (eventId)