Files
mod-individual-progression/src/vanillaScripts/molten_core.h
2022-03-09 12:30:07 -07:00

135 lines
4.2 KiB
C++

/*
* This file is part of the AzerothCore 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 Affero General Public License as published by the
* Free Software Foundation; either version 3 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 Affero 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 DEF_MOLTEN_CORE_60_H
#define DEF_MOLTEN_CORE_60_H
#include "CreatureAIImpl.h"
#include "Object.h"
constexpr auto MCScriptName = "instance_molten_core";
constexpr uint32 MAX_ENCOUNTER = 10;
enum MCData
{
DATA_LUCIFRON = 0,
DATA_MAGMADAR = 1,
DATA_GEHENNAS = 2,
DATA_GARR = 3,
DATA_SHAZZRAH = 4,
DATA_GEDDON = 5,
DATA_SULFURON = 6,
DATA_GOLEMAGG = 7,
DATA_MAJORDOMO_EXECUTUS = 8,
DATA_RAGNAROS = 9,
// Other data
DATA_LAVA_STEAM = 10,
DATA_LAVA_SPLASH = 11,
DATA_RUNE_STATUS = 12,
};
enum MCActions
{
ACTION_START_RAGNAROS_INTRO = -1,
ACTION_FINISH_RAGNAROS_INTRO = -2,
ACTION_RESET_GOLEMAGG_ENCOUNTER = -3, // Used when ragers are pulled far away
ACTION_PREPARE_MAJORDOMO_RAGNA = -4,
// Poisoned Water - Progression
ACTION_CHECK_RUNES = -5
};
enum MCCreatures
{
NPC_MAGMADAR = 11982,
NPC_SHAZZRAH = 12264,
NPC_BARON_GEDDON = 12056,
NPC_RAGNAROS = 11502,
NPC_FLAMEWAKER_HEALER = 11663,
NPC_FLAMEWAKER_ELITE = 11664,
NPC_CORE_HOUND = 11671,
// Garr
NPC_GARR = 12057,
NPC_FIRESWORN = 12099,
// Gehennas
NPC_GEHENNAS = 12259,
NPC_FLAMEWALKER = 11661,
// Golemagg
NPC_GOLEMAGG_THE_INCINERATOR = 11988,
NPC_CORE_RAGER = 11672,
// Lucifron
NPC_LUCIFRON = 12118,
NPC_FLAMEWALKER_PROTECTOR = 12119,
// Sulfuron
NPC_SULFURON_HARBINGER = 12098,
NPC_FLAMEWALKER_PRIEST = 11662,
// Majordomo
NPC_MAJORDOMO_EXECUTUS = 12018,
NPC_FLAMEWALKER_HEALER = 11663,
NPC_FLAMEWALKER_ELITE = 11664,
};
enum MCGameObjects
{
GO_CACHE_OF_THE_FIRELORD = 179703,
GO_CIRCLE_SULFURON = 178187,
GO_CIRCLE_GEDDON = 178188,
GO_CIRCLE_SHAZZRAH = 178189,
GO_CIRCLE_GOLEMAGG = 178190,
GO_CIRCLE_GARR = 178191,
GO_CIRCLE_MAGMADAR = 178192,
GO_CIRCLE_GEHENNAS = 178193,
GO_RUNE_KRESS = 176956, // Magmadar
GO_RUNE_MOHN = 176957, // Gehennas
GO_RUNE_BLAZ = 176955, // Garr
GO_RUNE_MAZJ = 176953, // Shazzrah
GO_RUNE_ZETH = 176952, // Geddon
GO_RUNE_THERI = 176954, // Golemagg
GO_RUNE_KORO = 176951, // Sulfuron
// Ragnaros event related
GO_LAVA_STEAM = 178107,
GO_LAVA_SPLASH = 178108,
GO_LAVA_BURST = 178088,
};
enum MCSpells
{
SPELL_CORE_RAGER_QUIET_SUICIDE = 3617, // Server side
};
extern Position const MajordomoRagnaros; // Teleport location to Ragnaros summons area
extern Position const MajordomoSummonPos; // Majordomo summon position (battle)
template <class AI, class T>
inline AI* GetMoltenCoreAI(T* obj)
{
return GetInstanceAI<AI>(obj, MCScriptName);
}
#endif