mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Scripts/Misc: added instance scripts and base definitions for all Cataclysm 4.0 raids
This commit is contained in:
5
sql/updates/world/master/2023_12_22_00_world.sql
Normal file
5
sql/updates/world/master/2023_12_22_00_world.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
DELETE FROM `instance_template` WHERE `map` IN (669, 671, 754);
|
||||
INSERT INTO `instance_template` (`map`, `parent`, `script`) VALUES
|
||||
(669, 0, 'instance_blackwing_descent'),
|
||||
(671, 0, 'instance_bastion_of_twilight'),
|
||||
(754, 1, 'instance_throne_of_the_four_winds');
|
||||
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* 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 _Bastion_of_Twilight_h__
|
||||
#define _Bastion_of_Twilight_h__
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
constexpr char const* DataHeader = "BOT";
|
||||
constexpr char const* BotScriptName = "instance_bastion_of_twilight";
|
||||
|
||||
constexpr uint32 const EncounterCount = 5;
|
||||
|
||||
enum BotDataTypes
|
||||
{
|
||||
// Encounters
|
||||
BOSS_HALFUS_WYRMBREAKER = 0,
|
||||
BOSS_THERALION_AND_VALIONA = 1,
|
||||
BOSS_ASCENDANT_COUNCIL = 2,
|
||||
BOSS_CHOGALL = 3,
|
||||
BOSS_SINESTRA = 4
|
||||
};
|
||||
|
||||
enum BotCreatureIds
|
||||
{
|
||||
// Bosses
|
||||
NPC_HALFUS_WYRMBREAKER = 44600,
|
||||
NPC_THERALION = 45993,
|
||||
NPC_VALIONA = 45992,
|
||||
NPC_IGNACIOUS = 43686,
|
||||
NPC_FELUDIUS = 43687,
|
||||
NPC_TERRASTRA = 43689,
|
||||
NPC_ARION = 43688,
|
||||
NPC_ELEMENTIUM_MONSTROSITY = 43735,
|
||||
NPC_CHOGALL = 43324,
|
||||
NPC_SINESTRA = 45213
|
||||
};
|
||||
|
||||
enum BotGameObjectIds
|
||||
{
|
||||
GO_HALFUS_ENTRANCE = 205222,
|
||||
GO_HALFUS_EXIT = 205223,
|
||||
GO_DRAGON_SIBLINGS_DOOR_ENTRANCE = 205224,
|
||||
GO_DRAGON_SIBLINGS_DOOR_EXIT = 205225,
|
||||
GO_ASCENDANT_COUNCIL_ENTRANCE = 205226,
|
||||
GO_ASCENDANT_COUNCIL_EXIT = 205227,
|
||||
GO_CHOGALL_ENTRANCE = 205228,
|
||||
GO_GRIM_BATOL_RAID_TRAP_DOOR = 205898
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetBastionOfTwilightAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, BotScriptName);
|
||||
}
|
||||
|
||||
#define RegisterBastionOfTwilightCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetBastionOfTwilightAI)
|
||||
|
||||
#endif // _Bastion_of_Twilight_h__
|
||||
@@ -0,0 +1,77 @@
|
||||
/*
|
||||
* 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 "bastion_of_twilight.h"
|
||||
#include "InstanceScript.h"
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
{
|
||||
{ NPC_HALFUS_WYRMBREAKER, BOSS_HALFUS_WYRMBREAKER },
|
||||
{ NPC_CHOGALL, BOSS_CHOGALL },
|
||||
{ NPC_SINESTRA, BOSS_SINESTRA },
|
||||
{ 0, 0 } // END
|
||||
};
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_HALFUS_ENTRANCE, BOSS_HALFUS_WYRMBREAKER, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_HALFUS_EXIT, BOSS_HALFUS_WYRMBREAKER, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_DRAGON_SIBLINGS_DOOR_ENTRANCE, BOSS_THERALION_AND_VALIONA, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_DRAGON_SIBLINGS_DOOR_EXIT, BOSS_THERALION_AND_VALIONA, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ASCENDANT_COUNCIL_ENTRANCE, BOSS_ASCENDANT_COUNCIL, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ASCENDANT_COUNCIL_EXIT, BOSS_ASCENDANT_COUNCIL, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_CHOGALL_ENTRANCE, BOSS_CHOGALL, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
{
|
||||
{ BOSS_HALFUS_WYRMBREAKER, {{ 1030 }} },
|
||||
{ BOSS_THERALION_AND_VALIONA, {{ 1032 }} },
|
||||
{ BOSS_ASCENDANT_COUNCIL, {{ 1028 }} },
|
||||
{ BOSS_CHOGALL, {{ 1029 }} },
|
||||
{ BOSS_SINESTRA, {{ 0, 0, 1082, 1083 }} }
|
||||
};
|
||||
|
||||
class instance_bastion_of_twilight : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
instance_bastion_of_twilight() : InstanceMapScript(BotScriptName, 671) { }
|
||||
|
||||
struct instance_bastion_of_twilight_InstanceMapScript : public InstanceScript
|
||||
{
|
||||
instance_bastion_of_twilight_InstanceMapScript(InstanceMap* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadObjectData(creatureData, nullptr);
|
||||
LoadDoorData(doorData);
|
||||
LoadDungeonEncounterData(encounters);
|
||||
}
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
{
|
||||
return new instance_bastion_of_twilight_InstanceMapScript(map);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_instance_bastion_of_twilight()
|
||||
{
|
||||
new instance_bastion_of_twilight();
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* 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 _Blackwing_Descent_h__
|
||||
#define _Blackwing_Descent_h__
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
constexpr char const* DataHeader = "BWD";
|
||||
constexpr char const* BWDScriptName = "instance_blackwing_descent";
|
||||
|
||||
constexpr uint32 const EncounterCount = 6;
|
||||
|
||||
enum BwdDataTypes
|
||||
{
|
||||
// Encounters
|
||||
BOSS_MAGMAW = 0,
|
||||
BOSS_OMNOTRON_DEFENSE_SYSTEM = 1,
|
||||
BOSS_CHIMAERON = 2,
|
||||
BOSS_ATRAMEDES = 3,
|
||||
BOSS_MALORIAK = 4,
|
||||
BOSS_NEFARIANS_END = 5
|
||||
};
|
||||
|
||||
enum BWDCreatureIds
|
||||
{
|
||||
// Bosses
|
||||
NPC_MAGMAW = 41570,
|
||||
NPC_CHIMAERON = 43296,
|
||||
NPC_ATRAMEDES = 41442,
|
||||
NPC_MALORIAK = 41378,
|
||||
NPC_NEFARIAN = 41376
|
||||
};
|
||||
|
||||
enum BWDGameObjectIds
|
||||
{
|
||||
GO_INNER_CHAMBER_DOOR = 205830,
|
||||
GO_ATHENAEUM_DOOR = 208291
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetBlackwingDescentAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, BWDScriptName);
|
||||
}
|
||||
|
||||
#define RegisterBlackwingDescentCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetBlackwingDescentAI)
|
||||
|
||||
#endif // _Blackwing_Descent_h__
|
||||
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* 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 "blackwing_descent.h"
|
||||
#include "InstanceScript.h"
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
{
|
||||
{ NPC_MAGMAW, BOSS_MAGMAW },
|
||||
{ NPC_CHIMAERON, BOSS_CHIMAERON },
|
||||
{ NPC_ATRAMEDES, BOSS_ATRAMEDES },
|
||||
{ NPC_MALORIAK, BOSS_MAGMAW },
|
||||
{ NPC_NEFARIAN, BOSS_NEFARIANS_END },
|
||||
{ 0, 0 } // END
|
||||
};
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_INNER_CHAMBER_DOOR, BOSS_MAGMAW, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_INNER_CHAMBER_DOOR, BOSS_OMNOTRON_DEFENSE_SYSTEM, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ATHENAEUM_DOOR, BOSS_ATRAMEDES, EncounterDoorBehavior::OpenWhenInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
{
|
||||
{ BOSS_MAGMAW, {{ 1024 }} },
|
||||
{ BOSS_OMNOTRON_DEFENSE_SYSTEM, {{ 1027 }} },
|
||||
{ BOSS_CHIMAERON, {{ 1023 }} },
|
||||
{ BOSS_ATRAMEDES, {{ 1022 }} },
|
||||
{ BOSS_MALORIAK, {{ 1025 }} },
|
||||
{ BOSS_NEFARIANS_END, {{ 1026 }} }
|
||||
};
|
||||
|
||||
class instance_blackwing_descent : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
instance_blackwing_descent() : InstanceMapScript(BWDScriptName, 669) { }
|
||||
|
||||
struct instance_blackwing_descent_InstanceMapScript : public InstanceScript
|
||||
{
|
||||
instance_blackwing_descent_InstanceMapScript(InstanceMap* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadObjectData(creatureData, nullptr);
|
||||
LoadDoorData(doorData);
|
||||
LoadDungeonEncounterData(encounters);
|
||||
}
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
{
|
||||
return new instance_blackwing_descent_InstanceMapScript(map);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_instance_blackwing_descent()
|
||||
{
|
||||
new instance_blackwing_descent();
|
||||
}
|
||||
@@ -26,6 +26,7 @@ void AddSC_boss_alizabal(); //Baradin Hold
|
||||
void AddSC_boss_occuthar();
|
||||
void AddSC_boss_pit_lord_argaloth();
|
||||
void AddSC_instance_baradin_hold();
|
||||
void AddSC_instance_bastion_of_twilight(); //Bastion of Twilight
|
||||
void AddSC_boss_romogg_bonecrusher(); //Blackrock Caverns
|
||||
void AddSC_boss_corla();
|
||||
void AddSC_boss_karsh_steelbender();
|
||||
@@ -59,6 +60,7 @@ void AddSC_boss_gizrul_the_slavener();
|
||||
void AddSC_boss_urok_doomhowl();
|
||||
void AddSC_boss_lord_valthalak();
|
||||
void AddSC_instance_blackrock_spire();
|
||||
void AddSC_instance_blackwing_descent(); //Blackwing Descent
|
||||
void AddSC_boss_razorgore(); //Blackwing lair
|
||||
void AddSC_boss_vaelastrasz();
|
||||
void AddSC_boss_broodlord();
|
||||
@@ -219,6 +221,7 @@ void AddEasternKingdomsScripts()
|
||||
AddSC_boss_occuthar();
|
||||
AddSC_boss_pit_lord_argaloth();
|
||||
AddSC_instance_baradin_hold();
|
||||
AddSC_instance_bastion_of_twilight(); //Bastion of Twilight
|
||||
AddSC_boss_romogg_bonecrusher(); //Blackrock Caverns
|
||||
AddSC_boss_corla();
|
||||
AddSC_boss_karsh_steelbender();
|
||||
@@ -252,6 +255,7 @@ void AddEasternKingdomsScripts()
|
||||
AddSC_boss_urok_doomhowl();
|
||||
AddSC_boss_lord_valthalak();
|
||||
AddSC_instance_blackrock_spire();
|
||||
AddSC_instance_blackwing_descent(); //Blackwing Descent
|
||||
AddSC_boss_razorgore(); //Blackwing lair
|
||||
AddSC_boss_vaelastrasz();
|
||||
AddSC_boss_broodlord();
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* 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 "throne_of_the_four_winds.h"
|
||||
#include "InstanceScript.h"
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
{
|
||||
{ NPC_ALAKIR, BOSS_ALAKIR },
|
||||
{ 0, 0 } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
{
|
||||
{ BOSS_CONCLAVE_OF_WIND, {{ 1035 }} },
|
||||
{ BOSS_ALAKIR, {{ 1034 }} }
|
||||
};
|
||||
|
||||
class instance_throne_of_the_four_winds : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
instance_throne_of_the_four_winds() : InstanceMapScript(TotFWScriptName, 754) { }
|
||||
|
||||
struct instance_throne_of_the_four_winds_InstanceMapScript : public InstanceScript
|
||||
{
|
||||
instance_throne_of_the_four_winds_InstanceMapScript(InstanceMap* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadObjectData(creatureData, nullptr);
|
||||
LoadDungeonEncounterData(encounters);
|
||||
}
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
{
|
||||
return new instance_throne_of_the_four_winds_InstanceMapScript(map);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_instance_throne_of_the_four_winds()
|
||||
{
|
||||
new instance_throne_of_the_four_winds();
|
||||
}
|
||||
@@ -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 _Throne_of_the_Four_Winds_h__
|
||||
#define _Throne_of_the_Four_Winds_h__
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
constexpr char const* DataHeader = "TFW";
|
||||
constexpr char const* TotFWScriptName = "instance_throne_of_the_four_winds";
|
||||
|
||||
constexpr uint32 const EncounterCount = 2;
|
||||
|
||||
enum TotFWDataTypes
|
||||
{
|
||||
// Encounters
|
||||
BOSS_CONCLAVE_OF_WIND = 0,
|
||||
BOSS_ALAKIR = 1
|
||||
};
|
||||
|
||||
enum TotFWCreatureIds
|
||||
{
|
||||
// Bosses
|
||||
NPC_ANSHAL = 45870,
|
||||
NPC_NEZIR = 45871,
|
||||
NPC_ROHASH = 45872,
|
||||
NPC_ALAKIR = 46753
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetThroneOfTheFourWindsAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, TotFWScriptName);
|
||||
}
|
||||
|
||||
#define RegisterThroneOfTheFourWindsCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetThroneOfTheFourWindsAI)
|
||||
|
||||
#endif // _Throne_of_the_Four_Winds_h__
|
||||
@@ -95,6 +95,8 @@ void AddSC_boss_twinemperors();
|
||||
void AddSC_boss_ouro();
|
||||
void AddSC_npc_anubisath_sentinel();
|
||||
void AddSC_instance_temple_of_ahnqiraj();
|
||||
// Throne of the Four Winds
|
||||
void AddSC_instance_throne_of_the_four_winds();
|
||||
// The Lost City of the Tol'vir
|
||||
void AddSC_boss_general_husam();
|
||||
void AddSC_boss_lockmaw();
|
||||
@@ -220,6 +222,8 @@ void AddKalimdorScripts()
|
||||
AddSC_boss_ouro();
|
||||
AddSC_npc_anubisath_sentinel();
|
||||
AddSC_instance_temple_of_ahnqiraj();
|
||||
// Throne of the Four Winds
|
||||
AddSC_instance_throne_of_the_four_winds();
|
||||
// The Lost City of the Tol'vir
|
||||
AddSC_boss_general_husam();
|
||||
AddSC_boss_lockmaw();
|
||||
|
||||
Reference in New Issue
Block a user