diff options
Diffstat (limited to 'src')
7 files changed, 338 insertions, 0 deletions
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EndTime/end_time.h b/src/server/scripts/Kalimdor/CavernsOfTime/EndTime/end_time.h new file mode 100644 index 00000000000..577fbc78878 --- /dev/null +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EndTime/end_time.h @@ -0,0 +1,52 @@ +/* + * 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/>. + */ + +#ifndef _End_Time_h__ +#define _End_Time_h__ + +#include "CreatureAIImpl.h" + +constexpr char const* DataHeader = "ET"; +constexpr char const* ETScriptName = "instance_end_time"; + +constexpr uint32 const EncounterCount = 5; + +enum ETWDataTypes +{ + // Encounters + BOSS_ECHO_OF_BAINE = 0, + BOSS_ECHO_OF_SYLVANAS = 1, + BOSS_ECHO_OF_JAINA = 2, + BOSS_ECHO_OF_TYRANDE = 3, + BOSS_MUROZOND = 4 +}; + +enum ETCreatureIds +{ + // Bosses + NPC_MUROZOND = 54432 +}; + +template <class AI, class T> +inline AI* GetEndTimeAI(T* obj) +{ + return GetInstanceAI<AI>(obj, ETScriptName); +} + +#define RegisterEndTimeCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetEndTimeAI) + +#endif // _End_Time_h__ diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EndTime/instance_end_time.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EndTime/instance_end_time.cpp new file mode 100644 index 00000000000..60bb9043399 --- /dev/null +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EndTime/instance_end_time.cpp @@ -0,0 +1,62 @@ +/* + * 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 "end_time.h" +#include "InstanceScript.h" + +ObjectData const creatureData[] = +{ + { NPC_MUROZOND, BOSS_MUROZOND }, + { 0, 0 } // END +}; + +DungeonEncounterData const encounters[] = +{ + { BOSS_ECHO_OF_BAINE, {{ 1881 }} }, + { BOSS_ECHO_OF_SYLVANAS, {{ 1882 }} }, + { BOSS_ECHO_OF_JAINA, {{ 1883 }} }, + { BOSS_ECHO_OF_TYRANDE, {{ 1884 }} }, + { BOSS_MUROZOND, {{ 1271 }} } +}; + +class instance_end_time : public InstanceMapScript +{ +public: + instance_end_time() : InstanceMapScript(ETScriptName, 938) { } + + struct instance_end_time_InstanceMapScript : public InstanceScript + { + instance_end_time_InstanceMapScript(InstanceMap* map) : InstanceScript(map) + { + SetHeaders(DataHeader); + SetBossNumber(EncounterCount); + LoadObjectData(creatureData, nullptr); + LoadDungeonEncounterData(encounters); + } + }; + + InstanceScript* GetInstanceScript(InstanceMap* map) const override + { + return new instance_end_time_InstanceMapScript(map); + } +}; + +void AddSC_instance_end_time() +{ + new instance_end_time(); +} diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/HourOfTwilight/hour_of_twilight.h b/src/server/scripts/Kalimdor/CavernsOfTime/HourOfTwilight/hour_of_twilight.h new file mode 100644 index 00000000000..618911935c4 --- /dev/null +++ b/src/server/scripts/Kalimdor/CavernsOfTime/HourOfTwilight/hour_of_twilight.h @@ -0,0 +1,49 @@ +/* + * 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/>. + */ + +#ifndef _Hour_of_Twilight_h__ +#define _Hour_of_Twilight_h__ + +#include "CreatureAIImpl.h" + +constexpr char const* DataHeader = "HOT"; +constexpr char const* HoTScriptName = "instance_throne_of_the_four_winds"; + +constexpr uint32 const EncounterCount = 3; + +enum TotFWDataTypes +{ + // Encounters + BOSS_ARCURION = 0, + BOSS_ASIRA_DAWNSLAYER = 1, + BOSS_ARCHBISHOP_BENEDICTUS = 2 +}; + +enum TotFWCreatureIds +{ + // Bosses +}; + +template <class AI, class T> +inline AI* GetThroneOfTheFourWindsAI(T* obj) +{ + return GetInstanceAI<AI>(obj, HoTScriptName); +} + +#define RegisterThroneOfTheFourWindsCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetThroneOfTheFourWindsAI) + +#endif // _Hour_of_Twilight_h__ diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/HourOfTwilight/instance_hour_of_twilight.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/HourOfTwilight/instance_hour_of_twilight.cpp new file mode 100644 index 00000000000..75051f49f2a --- /dev/null +++ b/src/server/scripts/Kalimdor/CavernsOfTime/HourOfTwilight/instance_hour_of_twilight.cpp @@ -0,0 +1,53 @@ +/* + * 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 "hour_of_twilight.h" +#include "InstanceScript.h" + +DungeonEncounterData const encounters[] = +{ + { BOSS_ARCURION, {{ 1337 }} }, + { BOSS_ASIRA_DAWNSLAYER, {{ 1340 }} }, + { BOSS_ARCHBISHOP_BENEDICTUS, {{ 1339 }} } +}; + +class instance_hour_of_twilight : public InstanceMapScript +{ +public: + instance_hour_of_twilight() : InstanceMapScript(HoTScriptName, 940) { } + + struct instance_hour_of_twilight_InstanceMapScript : public InstanceScript + { + instance_hour_of_twilight_InstanceMapScript(InstanceMap* map) : InstanceScript(map) + { + SetHeaders(DataHeader); + SetBossNumber(EncounterCount); + LoadDungeonEncounterData(encounters); + } + }; + + InstanceScript* GetInstanceScript(InstanceMap* map) const override + { + return new instance_hour_of_twilight_InstanceMapScript(map); + } +}; + +void AddSC_instance_hour_of_twilight() +{ + new instance_hour_of_twilight(); +} diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/WellOfEternity/instance_well_of_eternity.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/WellOfEternity/instance_well_of_eternity.cpp new file mode 100644 index 00000000000..6cccb7a52e3 --- /dev/null +++ b/src/server/scripts/Kalimdor/CavernsOfTime/WellOfEternity/instance_well_of_eternity.cpp @@ -0,0 +1,60 @@ +/* + * 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 "well_of_eternity.h" +#include "InstanceScript.h" + +ObjectData const creatureData[] = +{ + { NPC_PEROTHARN, BOSS_PEROTHARN }, + { 0, 0 } // END +}; + +DungeonEncounterData const encounters[] = +{ + { BOSS_PEROTHARN, {{ 1272 }} }, + { BOSS_QUEEN_AZSHARA, {{ 1273 }} }, + { BOSS_MANNOROTH, {{ 1274 }} } +}; + +class instance_well_of_eternityy : public InstanceMapScript +{ +public: + instance_well_of_eternityy() : InstanceMapScript(WoEScriptName, 939) { } + + struct instance_well_of_eternityy_InstanceMapScript : public InstanceScript + { + instance_well_of_eternityy_InstanceMapScript(InstanceMap* map) : InstanceScript(map) + { + SetHeaders(DataHeader); + SetBossNumber(EncounterCount); + LoadObjectData(creatureData, nullptr); + LoadDungeonEncounterData(encounters); + } + }; + + InstanceScript* GetInstanceScript(InstanceMap* map) const override + { + return new instance_well_of_eternityy_InstanceMapScript(map); + } +}; + +void AddSC_instance_well_of_eternity() +{ + new instance_well_of_eternityy(); +} diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/WellOfEternity/well_of_eternity.h b/src/server/scripts/Kalimdor/CavernsOfTime/WellOfEternity/well_of_eternity.h new file mode 100644 index 00000000000..167e4b3e623 --- /dev/null +++ b/src/server/scripts/Kalimdor/CavernsOfTime/WellOfEternity/well_of_eternity.h @@ -0,0 +1,50 @@ +/* + * 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/>. + */ + +#ifndef _Well_of_Eternity_h__ +#define _Well_of_Eternity_h__ + +#include "CreatureAIImpl.h" + +constexpr char const* DataHeader = "WOE"; +constexpr char const* WoEScriptName = "instance_well_of_eternity"; + +constexpr uint32 const EncounterCount = 3; + +enum WoEDataTypes +{ + // Encounters + BOSS_PEROTHARN = 0, + BOSS_QUEEN_AZSHARA = 1, + BOSS_MANNOROTH = 2 +}; + +enum WoECreatureIds +{ + // Bosses + NPC_PEROTHARN = 55085 +}; + +template <class AI, class T> +inline AI* GetWellOfEnernityAI(T* obj) +{ + return GetInstanceAI<AI>(obj, WoEScriptName); +} + +#define RegisterWellOfEternityCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetWellOfEnernityAI) + +#endif // _Well_of_Eternity_h__ diff --git a/src/server/scripts/Kalimdor/kalimdor_script_loader.cpp b/src/server/scripts/Kalimdor/kalimdor_script_loader.cpp index 5f2a9067b8b..245570267e1 100644 --- a/src/server/scripts/Kalimdor/kalimdor_script_loader.cpp +++ b/src/server/scripts/Kalimdor/kalimdor_script_loader.cpp @@ -52,6 +52,12 @@ void AddSC_boss_mal_ganis(); void AddSC_boss_meathook(); void AddSC_culling_of_stratholme(); void AddSC_instance_culling_of_stratholme(); +// CoT End Time +void AddSC_instance_end_time(); +// CoT Hour of Twilight +void AddSC_instance_hour_of_twilight(); +// CoT Well of Eternity +void AddSC_instance_well_of_eternity(); // Dire Maul void AddSC_instance_dire_maul(); // Dragon Soul @@ -181,6 +187,12 @@ void AddKalimdorScripts() AddSC_boss_meathook(); AddSC_culling_of_stratholme(); AddSC_instance_culling_of_stratholme(); + // CoT End Time + AddSC_instance_end_time(); + // CoT Hour of Twilight + AddSC_instance_hour_of_twilight(); + // CoT Well of Eternity + AddSC_instance_well_of_eternity(); // Dire Maul AddSC_instance_dire_maul(); // Dragon Soul |