feat(Core/Instance): Add instance validation for creature scripts (#4596)

This commit is contained in:
Kitzunu
2021-04-05 15:34:26 +02:00
committed by GitHub
parent 60f865fce6
commit f9d708b450
371 changed files with 1315 additions and 767 deletions

View File

@@ -5,10 +5,13 @@
#ifndef DEF_AZJOL_NERUB_H
#define DEF_AZJOL_NERUB_H
#include "CreatureAIImpl.h"
#include "SpellAuraEffects.h"
#include "SpellAuras.h"
#include "SpellScript.h"
#define AzjolNerubScriptName "instance_azjol_nerub"
enum ANData
{
DATA_KRIKTHIR_THE_GATEWATCHER_EVENT = 0,
@@ -35,4 +38,10 @@ enum ANIds
SPELL_WEB_WRAP_TRIGGER = 52087
};
template <class AI, class T>
inline AI* GetAzjolNerubAI(T* obj)
{
return GetInstanceAI<AI>(obj, AzjolNerubScriptName);
}
#endif

View File

@@ -224,7 +224,7 @@ class boss_anub_arak : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_anub_arakAI(creature);
return GetAzjolNerubAI<boss_anub_arakAI>(creature);
}
};

View File

@@ -194,7 +194,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_hadronoxAI(creature);
return GetAzjolNerubAI<boss_hadronoxAI>(creature);
}
};
@@ -291,7 +291,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_anub_ar_crusherAI(creature);
return GetAzjolNerubAI<npc_anub_ar_crusherAI>(creature);
}
};

View File

@@ -211,7 +211,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_krik_thirAI(creature);
return GetAzjolNerubAI<boss_krik_thirAI>(creature);
}
};

View File

@@ -1,9 +1,16 @@
/*
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
*/
#ifndef DEF_AHNKAHET_H
#define DEF_AHNKAHET_H
#define MAX_ENCOUNTER 5
#include "CreatureAIImpl.h"
#define AhnahetScriptName "instance_ahnkahet"
enum Data64
{
DATA_ELDER_NADOX,
@@ -40,4 +47,11 @@ enum Npc
SPELL_SHADOW_SICKLE_H = 59104 // Shadow Sickle Heroic
};
template <class AI, class T>
inline AI* GetAhnkahetAI(T* obj)
{
return GetInstanceAI<AI>(obj, AhnahetScriptName);
}
#endif

View File

@@ -163,7 +163,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_amanitarAI(creature);
return GetAhnkahetAI<boss_amanitarAI>(creature);
}
};
@@ -233,7 +233,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_amanitar_mushroomsAI(creature);
return GetAhnkahetAI<npc_amanitar_mushroomsAI>(creature);
}
};

View File

@@ -221,7 +221,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_elder_nadoxAI(creature);
return GetAhnkahetAI<boss_elder_nadoxAI>(creature);
}
};
@@ -279,7 +279,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_ahnkahar_nerubianAI(creature);
return GetAhnkahetAI<npc_ahnkahar_nerubianAI>(creature);
}
};

View File

@@ -302,7 +302,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_volazjAI(creature);
return GetAhnkahetAI<boss_volazjAI>(creature);
}
};

View File

@@ -391,7 +391,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_jedoga_shadowseekerAI(creature);
return GetAhnkahetAI<boss_jedoga_shadowseekerAI>(creature);
}
};
@@ -521,7 +521,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_jedoga_initiandAI(creature);
return GetAhnkahetAI<npc_jedoga_initiandAI>(creature);
}
};

View File

@@ -257,7 +257,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_taldaramAI(creature);
return GetAhnkahetAI<boss_taldaramAI>(creature);
}
};
@@ -319,7 +319,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_taldaram_flamesphereAI(creature);
return GetAhnkahetAI<npc_taldaram_flamesphereAI>(creature);
}
};

View File

@@ -231,7 +231,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sartharionAI (pCreature);
return GetObsidianSanctumAI<boss_sartharionAI> (pCreature);
}
struct boss_sartharionAI : public BossAI
@@ -1009,7 +1009,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sartharion_tenebronAI (pCreature);
return GetObsidianSanctumAI<boss_sartharion_tenebronAI>(pCreature);
}
struct boss_sartharion_tenebronAI : public boss_sartharion_dragonAI
@@ -1192,7 +1192,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sartharion_shadronAI (pCreature);
return GetObsidianSanctumAI<boss_sartharion_shadronAI>(pCreature);
}
struct boss_sartharion_shadronAI : public boss_sartharion_dragonAI
@@ -1317,7 +1317,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sartharion_vesperonAI (pCreature);
return GetObsidianSanctumAI<boss_sartharion_vesperonAI>(pCreature);
}
struct boss_sartharion_vesperonAI : public boss_sartharion_dragonAI
@@ -1439,7 +1439,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_twilight_summonAI (pCreature);
return GetObsidianSanctumAI<npc_twilight_summonAI>(pCreature);
}
struct npc_twilight_summonAI : public ScriptedAI

View File

@@ -7,6 +7,10 @@
#ifndef DEF_OBSIDIAN_SANCTUM_H
#define DEF_OBSIDIAN_SANCTUM_H
#include "CreatureAIImpl.h"
#define ObsidianSanctumScriptName "instance_obsidian_sanctum"
enum Data : uint32
{
// Encounters
@@ -42,4 +46,11 @@ enum OSActions
ACTION_CLEAR_PORTAL = -1,
ACTION_ADD_PORTAL = -2,
};
template <class AI, class T>
inline AI* GetObsidianSanctumAI(T* obj)
{
return GetInstanceAI<AI>(obj, ObsidianSanctumScriptName);
}
#endif

View File

@@ -254,7 +254,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_baltharus_the_warbornAI>(creature);
return GetRubySanctumAI<boss_baltharus_the_warbornAI>(creature);
}
};
@@ -313,7 +313,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_baltharus_the_warborn_cloneAI>(creature);
return GetRubySanctumAI<npc_baltharus_the_warborn_cloneAI>(creature);
}
};
@@ -441,7 +441,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_xerestraszaAI>(creature);
return GetRubySanctumAI<npc_xerestraszaAI>(creature);
}
};

View File

@@ -175,7 +175,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_general_zarithrianAI>(creature);
return GetRubySanctumAI<boss_general_zarithrianAI>(creature);
}
};
@@ -275,7 +275,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_onyx_flamecallerAI>(creature);
return GetRubySanctumAI<npc_onyx_flamecallerAI>(creature);
}
};

View File

@@ -411,7 +411,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_halionAI>(creature);
return GetRubySanctumAI<boss_halionAI>(creature);
}
};
@@ -564,7 +564,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_twilight_halionAI>(creature);
return GetRubySanctumAI<boss_twilight_halionAI>(creature);
}
};
@@ -732,7 +732,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_halion_controllerAI>(creature);
return GetRubySanctumAI<npc_halion_controllerAI>(creature);
}
};
@@ -784,7 +784,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_orb_carrierAI>(creature);
return GetRubySanctumAI<npc_orb_carrierAI>(creature);
}
};
@@ -1461,7 +1461,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_living_infernoAI>(creature);
return GetRubySanctumAI<npc_living_infernoAI>(creature);
}
};

View File

@@ -166,7 +166,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_saviana_ragefireAI>(creature);
return GetRubySanctumAI<boss_saviana_ragefireAI>(creature);
}
};

View File

@@ -6,6 +6,7 @@
#define RUBY_SANCTUM_H_
#include "Creature.h"
#include "CreatureAIImpl.h"
#include "GameObjectAI.h"
#include "Map.h"
#include "Opcodes.h"
@@ -13,6 +14,8 @@
#include "Player.h"
#include "SpellScript.h"
#define RubySanctumScriptName "instance_ruby_sanctum"
enum DataTypes
{
// Encounter States/Boss GUIDs
@@ -97,4 +100,10 @@ enum InstanceSpell
SPELL_RALLY = 75416
};
template <class AI, class T>
inline AI* GetRubySanctumAI(T* obj)
{
return GetInstanceAI<AI>(obj, RubySanctumScriptName);
}
#endif // RUBY_SANCTUM_H_

View File

@@ -191,7 +191,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_eadricAI(pCreature);
return GetTrialOfTheChampionAI<boss_eadricAI>(pCreature);
}
};
@@ -374,7 +374,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_paletressAI(pCreature);
return GetTrialOfTheChampionAI<boss_paletressAI>(pCreature);
}
};
@@ -459,7 +459,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_memoryAI(pCreature);
return GetTrialOfTheChampionAI<npc_memoryAI>(pCreature);
}
};
@@ -721,7 +721,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_argent_soldierAI(pCreature);
return GetTrialOfTheChampionAI<npc_argent_soldierAI>(pCreature);
}
};

View File

@@ -312,7 +312,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_black_knightAI (pCreature);
return GetTrialOfTheChampionAI<boss_black_knightAI>(pCreature);
}
};
@@ -365,7 +365,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_black_knight_skeletal_gryphonAI(pCreature);
return GetTrialOfTheChampionAI<npc_black_knight_skeletal_gryphonAI>(pCreature);
}
};
@@ -464,7 +464,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_black_knight_ghoulAI (pCreature);
return GetTrialOfTheChampionAI<npc_black_knight_ghoulAI>(pCreature);
}
};

View File

@@ -129,7 +129,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc5_player_vehicleAI(pCreature);
return GetTrialOfTheChampionAI<npc_toc5_player_vehicleAI>(pCreature);
}
struct npc_toc5_player_vehicleAI : public NullCreatureAI
@@ -210,7 +210,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc5_grand_champion_minionAI(pCreature);
return GetTrialOfTheChampionAI<npc_toc5_grand_champion_minionAI>(pCreature);
}
struct npc_toc5_grand_champion_minionAI : public ScriptedAI
@@ -929,7 +929,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_grand_championAI(pCreature);
return GetTrialOfTheChampionAI<boss_grand_championAI>(pCreature);
}
};

View File

@@ -82,7 +82,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_announcer_toc5AI(creature);
return GetTrialOfTheChampionAI<npc_announcer_toc5AI>(creature);
}
struct npc_announcer_toc5AI : public CreatureAI

View File

@@ -6,6 +6,9 @@
#define DEF_TOC_H
#include "CombatAI.h"
#include "CreatureAIImpl.h"
#define TrialOfTheChampionScriptName "instance_trial_of_the_champion"
enum eData
{
@@ -222,4 +225,10 @@ enum eTexts
TEXT_BK_DEATH = 56,
};
template <class AI, class T>
inline AI* GetTrialOfTheChampionAI(T* obj)
{
return GetInstanceAI<AI>(obj, TrialOfTheChampionScriptName);
}
#endif

View File

@@ -137,7 +137,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_anubarak_trialAI(pCreature);
return GetTrialOfTheCrusaderAI<boss_anubarak_trialAI>(pCreature);
};
struct boss_anubarak_trialAI : public ScriptedAI
@@ -434,7 +434,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_swarm_scarabAI(pCreature);
return GetTrialOfTheCrusaderAI<npc_swarm_scarabAI>(pCreature);
};
struct npc_swarm_scarabAI : public ScriptedAI
@@ -523,7 +523,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_frost_sphereAI(pCreature);
return GetTrialOfTheCrusaderAI<npc_frost_sphereAI>(pCreature);
};
struct npc_frost_sphereAI : public NullCreatureAI
@@ -612,7 +612,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_nerubian_burrowerAI(pCreature);
return GetTrialOfTheCrusaderAI<npc_nerubian_burrowerAI>(pCreature);
};
struct npc_nerubian_burrowerAI : public ScriptedAI
@@ -731,7 +731,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_anubarak_spikeAI(pCreature);
return GetTrialOfTheCrusaderAI<npc_anubarak_spikeAI>(pCreature);
};
struct npc_anubarak_spikeAI : public ScriptedAI

View File

@@ -256,7 +256,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_druidAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_druidAI>(pCreature);
}
struct npc_toc_druidAI : public boss_faction_championsAI
@@ -386,7 +386,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_shamanAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_shamanAI>(pCreature);
}
struct npc_toc_shamanAI : public boss_faction_championsAI
@@ -508,7 +508,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_paladinAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_paladinAI>(pCreature);
}
struct npc_toc_paladinAI : public boss_faction_championsAI
@@ -643,7 +643,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_priestAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_priestAI>(pCreature);
}
struct npc_toc_priestAI : public boss_faction_championsAI
@@ -763,7 +763,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_shadow_priestAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_shadow_priestAI>(pCreature);
}
struct npc_toc_shadow_priestAI : public boss_faction_championsAI
@@ -917,7 +917,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_warlockAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_warlockAI>(pCreature);
}
struct npc_toc_warlockAI : public boss_faction_championsAI
@@ -1061,7 +1061,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_mageAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_mageAI>(pCreature);
}
struct npc_toc_mageAI : public boss_faction_championsAI
@@ -1208,7 +1208,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_hunterAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_hunterAI>(pCreature);
}
struct npc_toc_hunterAI : public boss_faction_championsAI
@@ -1361,7 +1361,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_boomkinAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_boomkinAI>(pCreature);
}
struct npc_toc_boomkinAI : public boss_faction_championsAI
@@ -1506,7 +1506,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_warriorAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_warriorAI>(pCreature);
}
struct npc_toc_warriorAI : public boss_faction_championsAI
@@ -1700,7 +1700,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_dkAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_dkAI>(pCreature);
}
struct npc_toc_dkAI : public boss_faction_championsAI
@@ -1856,7 +1856,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_rogueAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_rogueAI>(pCreature);
}
struct npc_toc_rogueAI : public boss_faction_championsAI
@@ -2014,7 +2014,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_enh_shamanAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_enh_shamanAI>(pCreature);
}
struct npc_toc_enh_shamanAI : public boss_faction_championsAI
@@ -2152,7 +2152,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_retro_paladinAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_retro_paladinAI>(pCreature);
}
struct npc_toc_retro_paladinAI : public boss_faction_championsAI
@@ -2304,7 +2304,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_pet_warlockAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_pet_warlockAI>(pCreature);
}
struct npc_toc_pet_warlockAI : public boss_faction_championsAI
@@ -2379,7 +2379,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_toc_pet_hunterAI (pCreature);
return GetTrialOfTheCrusaderAI<npc_toc_pet_hunterAI>(pCreature);
}
struct npc_toc_pet_hunterAI : public boss_faction_championsAI

View File

@@ -83,7 +83,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_jaraxxusAI(pCreature);
return GetTrialOfTheCrusaderAI<boss_jaraxxusAI>(pCreature);
}
struct boss_jaraxxusAI : public ScriptedAI
@@ -286,7 +286,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_fel_infernalAI(pCreature);
return GetTrialOfTheCrusaderAI<npc_fel_infernalAI>(pCreature);
}
struct npc_fel_infernalAI : public ScriptedAI
@@ -356,7 +356,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_mistress_of_painAI(pCreature);
return GetTrialOfTheCrusaderAI<npc_mistress_of_painAI>(pCreature);
}
struct npc_mistress_of_painAI : public ScriptedAI

View File

@@ -68,7 +68,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_snobold_vassalAI(pCreature);
return GetTrialOfTheCrusaderAI<npc_snobold_vassalAI>(pCreature);
}
struct npc_snobold_vassalAI : public ScriptedAI
@@ -219,7 +219,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_gormokAI(pCreature);
return GetTrialOfTheCrusaderAI<boss_gormokAI>(pCreature);
}
struct boss_gormokAI : public ScriptedAI
@@ -685,7 +685,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_acidmawAI(creature);
return GetTrialOfTheCrusaderAI<boss_acidmawAI>(creature);
}
};
@@ -710,7 +710,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_dreadscaleAI(pCreature);
return GetTrialOfTheCrusaderAI<boss_dreadscaleAI>(pCreature);
}
};
@@ -754,7 +754,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_icehowlAI(pCreature);
return GetTrialOfTheCrusaderAI<boss_icehowlAI>(pCreature);
}
struct boss_icehowlAI : public ScriptedAI

View File

@@ -507,7 +507,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_eydisAI(pCreature);
return GetTrialOfTheCrusaderAI<boss_eydisAI>(pCreature);
}
struct boss_eydisAI : public boss_twin_valkyrAI
@@ -533,7 +533,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_fjolaAI(pCreature);
return GetTrialOfTheCrusaderAI<boss_fjolaAI>(pCreature);
}
struct boss_fjolaAI : public boss_twin_valkyrAI
@@ -668,7 +668,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_concentrated_ballAI(pCreature);
return GetTrialOfTheCrusaderAI<npc_concentrated_ballAI>(pCreature);
}
struct npc_concentrated_ballAI : public NullCreatureAI

View File

@@ -7,6 +7,9 @@
#include "GridNotifiers.h"
#include "SpellAuraEffects.h"
#include "CreatureAIImpl.h"
#define TrialOfTheCrusaderScriptName "instance_trial_of_the_crusader"
enum DataTypes
{
@@ -386,4 +389,10 @@ const uint32 dedicatedInsanityItems[405] =
48703, 48705, 48708, 48709, 48710, 48711, 48712, 48713, 48714, 48722, 48724, 49233, 49234, 49237, 49238
};
template <class AI, class T>
inline AI* GetTrialOfTheCrusaderAI(T* obj)
{
return GetInstanceAI<AI>(obj, TrialOfTheCrusaderScriptName);
}
#endif

View File

@@ -40,7 +40,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_dredAI>(creature);
return GetDraktharonKeepAI<boss_dredAI>(creature);
}
struct boss_dredAI : public BossAI

View File

@@ -248,7 +248,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_novosAI>(creature);
return GetDraktharonKeepAI<boss_novosAI>(creature);
}
};

View File

@@ -59,7 +59,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_tharon_jaAI>(creature);
return GetDraktharonKeepAI<boss_tharon_jaAI>(creature);
}
struct boss_tharon_jaAI : public BossAI

View File

@@ -153,7 +153,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_trollgoreAI>(creature);
return GetDraktharonKeepAI<boss_trollgoreAI>(creature);
}
};

View File

@@ -5,9 +5,12 @@
#ifndef DEF_DRAK_THARON_H
#define DEF_DRAK_THARON_H
#include "CreatureAIImpl.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
#define DraktharonKeepScriptName "instance_drak_tharon_keep"
enum Data
{
DATA_TROLLGORE = 0,
@@ -39,4 +42,10 @@ enum DTKSpells
SPELL_SUMMON_DRAKKARI_GUARDIAN = 49959
};
template <class AI, class T>
inline AI* GetDraktharonKeepAI(T* obj)
{
return GetInstanceAI<AI>(obj, DraktharonKeepScriptName);
}
#endif

View File

@@ -194,7 +194,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_bronjahmAI(creature);
return GetForgeOfSoulsAI<boss_bronjahmAI>(creature);
}
};
@@ -245,7 +245,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_fos_corrupted_soul_fragmentAI(creature);
return GetForgeOfSoulsAI<npc_fos_corrupted_soul_fragmentAI>(creature);
}
};

View File

@@ -290,7 +290,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_devourer_of_soulsAI(creature);
return GetForgeOfSoulsAI<boss_devourer_of_soulsAI>(creature);
}
};

View File

@@ -206,7 +206,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_fos_leaderAI(creature);
return GetForgeOfSoulsAI<npc_fos_leaderAI>(creature);
}
};
@@ -238,7 +238,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_fos_leader_secondAI(creature);
return GetForgeOfSoulsAI<npc_fos_leader_secondAI>(creature);
}
};

View File

@@ -6,6 +6,9 @@
#define DEF_FORGE_OF_SOULS_H
#include "GridNotifiers.h"
#include "CreatureAIImpl.h"
#define ForgeOfSoulsScriptName "instance_forge_of_souls"
enum Data
{
@@ -75,4 +78,10 @@ const outroPosition outroPositions[] =
const Position outroSpawnPoint = {5618.139f, 2451.873f, 705.854f, 0.0f};
template <class AI, class T>
inline AI* GetForgeOfSoulsAI(T* obj)
{
return GetInstanceAI<AI>(obj, ForgeOfSoulsScriptName);
}
#endif

View File

@@ -162,7 +162,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_falricAI(creature);
return GetHallsOfReflectionAI<boss_falricAI>(creature);
}
};

View File

@@ -150,7 +150,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_marwynAI(creature);
return GetHallsOfReflectionAI<boss_marwynAI>(creature);
}
};

View File

@@ -156,7 +156,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_hor_leaderAI(creature);
return GetHallsOfReflectionAI<npc_hor_leaderAI>(creature);
}
struct npc_hor_leaderAI : public NullCreatureAI
@@ -658,7 +658,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_ghostly_priestAI(creature);
return GetHallsOfReflectionAI<npc_ghostly_priestAI>(creature);
}
struct npc_ghostly_priestAI: public ScriptedAI
@@ -754,7 +754,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_phantom_mageAI(creature);
return GetHallsOfReflectionAI<npc_phantom_mageAI>(creature);
}
struct npc_phantom_mageAI: public ScriptedAI
@@ -850,7 +850,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_phantom_hallucinationAI(creature);
return GetHallsOfReflectionAI<npc_phantom_hallucinationAI>(creature);
}
struct npc_phantom_hallucinationAI : public npc_phantom_mage::npc_phantom_mageAI
@@ -898,7 +898,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_shadowy_mercenaryAI(creature);
return GetHallsOfReflectionAI<npc_shadowy_mercenaryAI>(creature);
}
struct npc_shadowy_mercenaryAI: public ScriptedAI
@@ -993,7 +993,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_spectral_footmanAI(creature);
return GetHallsOfReflectionAI<npc_spectral_footmanAI>(creature);
}
struct npc_spectral_footmanAI: public ScriptedAI
@@ -1076,7 +1076,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_tortured_riflemanAI(creature);
return GetHallsOfReflectionAI<npc_tortured_riflemanAI>(creature);
}
struct npc_tortured_riflemanAI : public ScriptedAI
@@ -1230,7 +1230,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_frostsworn_generalAI(creature);
return GetHallsOfReflectionAI<boss_frostsworn_generalAI>(creature);
}
};
@@ -1293,7 +1293,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_hor_spiritual_reflectionAI(creature);
return GetHallsOfReflectionAI<npc_hor_spiritual_reflectionAI>(creature);
}
};
@@ -1349,7 +1349,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_hor_lich_kingAI(creature);
return GetHallsOfReflectionAI<npc_hor_lich_kingAI>(creature);
}
struct npc_hor_lich_kingAI : public NullCreatureAI
@@ -1624,7 +1624,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_hor_leader_secondAI(creature);
return GetHallsOfReflectionAI<npc_hor_leader_secondAI>(creature);
}
struct npc_hor_leader_secondAI : public NullCreatureAI
@@ -1838,7 +1838,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_hor_raging_ghoulAI(creature);
return GetHallsOfReflectionAI<npc_hor_raging_ghoulAI>(creature);
}
};
@@ -1907,7 +1907,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_hor_risen_witch_doctorAI(creature);
return GetHallsOfReflectionAI<npc_hor_risen_witch_doctorAI>(creature);
}
};
@@ -1972,7 +1972,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_hor_lumbering_abominationAI(creature);
return GetHallsOfReflectionAI<npc_hor_lumbering_abominationAI>(creature);
}
};

View File

@@ -5,6 +5,7 @@
#ifndef DEF_HALLS_OF_REFLECTION_H
#define DEF_HALLS_OF_REFLECTION_H
#include "CreatureAIImpl.h"
#include "PassiveAI.h"
#include "Player.h"
#include "ScriptedCreature.h"
@@ -14,6 +15,8 @@
#include "SpellAuras.h"
#include "SpellScript.h"
#define HallsOfReflectionScriptName "instance_halls_of_reflection"
enum Data
{
DATA_INTRO,
@@ -333,4 +336,10 @@ const Position StairsPos[2][3] =
}
};
template <class AI, class T>
inline AI* GetHallsOfReflectionAI(T* obj)
{
return GetInstanceAI<AI>(obj, HallsOfReflectionScriptName);
}
#endif

View File

@@ -286,7 +286,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_garfrostAI(creature);
return GetPitOfSaronAI<boss_garfrostAI>(creature);
}
};

View File

@@ -267,7 +267,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_ickAI(creature);
return GetPitOfSaronAI<boss_ickAI>(creature);
}
};
@@ -445,7 +445,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_krickAI(creature);
return GetPitOfSaronAI<boss_krickAI>(creature);
}
};

View File

@@ -222,7 +222,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_tyrannusAI(creature);
return GetPitOfSaronAI<boss_tyrannusAI>(creature);
}
};

View File

@@ -364,7 +364,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_pos_leaderAI(creature);
return GetPitOfSaronAI<npc_pos_leaderAI>(creature);
}
};
@@ -479,7 +479,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_pos_deathwhisper_necrolyteAI(creature);
return GetPitOfSaronAI<npc_pos_deathwhisper_necrolyteAI>(creature);
}
};
@@ -560,7 +560,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_pos_after_first_bossAI(creature);
return GetPitOfSaronAI<npc_pos_after_first_bossAI>(creature);
}
};
@@ -809,7 +809,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_pos_tyrannus_eventsAI(creature);
return GetPitOfSaronAI<npc_pos_tyrannus_eventsAI>(creature);
}
};
@@ -846,7 +846,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_pos_icicle_triggerAI(creature);
return GetPitOfSaronAI<npc_pos_icicle_triggerAI>(creature);
}
};
@@ -897,7 +897,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_pos_collapsing_icicleAI(creature);
return GetPitOfSaronAI<npc_pos_collapsing_icicleAI>(creature);
}
};
@@ -1084,7 +1084,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_pos_martin_or_gorkun_secondAI(creature);
return GetPitOfSaronAI<npc_pos_martin_or_gorkun_secondAI>(creature);
}
};
@@ -1125,7 +1125,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_pos_freed_slaveAI(creature);
return GetPitOfSaronAI<npc_pos_freed_slaveAI>(creature);
}
};
@@ -1285,7 +1285,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_pos_leader_secondAI(creature);
return GetPitOfSaronAI<npc_pos_leader_secondAI>(creature);
}
};
@@ -1327,7 +1327,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_frostbite_invisible_stalkerAI(creature);
return GetPitOfSaronAI<npc_frostbite_invisible_stalkerAI>(creature);
}
};

View File

@@ -8,6 +8,8 @@
#include "Chat.h"
#include "CreatureAIImpl.h"
#define PitOfSaronScriptName "instance_pit_of_saron"
enum DataTypes
{
DATA_GARFROST,
@@ -312,4 +314,10 @@ enum eTSTexts
SAY_GENERAL_ALLIANCE_TRASH = 69,
};
template <class AI, class T>
inline AI* GetPitOfSaronAI(T* obj)
{
return GetInstanceAI<AI>(obj, PitOfSaronScriptName);
}
#endif

View File

@@ -83,7 +83,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_drakkari_colossusAI (creature);
return GetGundrakAI<boss_drakkari_colossusAI>(creature);
}
struct boss_drakkari_colossusAI : public BossAI
{
@@ -233,7 +233,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_drakkari_elementalAI (pCreature);
return GetGundrakAI<boss_drakkari_elementalAI>(pCreature);
}
struct boss_drakkari_elementalAI : public ScriptedAI
@@ -313,7 +313,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_living_mojoAI (pCreature);
return GetGundrakAI<npc_living_mojoAI>(pCreature);
}
struct npc_living_mojoAI : public ScriptedAI

View File

@@ -32,7 +32,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_eckAI>(creature);
return GetGundrakAI<boss_eckAI>(creature);
}
struct boss_eckAI : public BossAI

View File

@@ -50,7 +50,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_gal_darahAI>(creature);
return GetGundrakAI<boss_gal_darahAI>(creature);
}
struct boss_gal_darahAI : public BossAI

View File

@@ -50,7 +50,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_moorabiAI>(creature);
return GetGundrakAI<boss_moorabiAI>(creature);
}
struct boss_moorabiAI : public BossAI

View File

@@ -61,7 +61,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_slad_ranAI(creature);
return GetGundrakAI<boss_slad_ranAI>(creature);
}
struct boss_slad_ranAI : public BossAI

View File

@@ -6,6 +6,9 @@
#define DEF_GUNDRAK_H
#include "SpellScript.h"
#include "CreatureAIImpl.h"
#define GundrakScriptName "instance_gundrak"
enum Data
{
@@ -43,4 +46,10 @@ enum GameObjects
GO_GAL_DARAH_DOORS2 = 193209
};
template <class AI, class T>
inline AI* GetGundrakAI(T* obj)
{
return GetInstanceAI<AI>(obj, GundrakScriptName);
}
#endif

View File

@@ -1386,7 +1386,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_icc_blood_beastAI(creature);
return GetIcecrownCitadelAI<npc_icc_blood_beastAI>(creature);
}
};

View File

@@ -679,7 +679,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_the_lich_king_controllerAI(creature);
return GetIcecrownCitadelAI<npc_the_lich_king_controllerAI>(creature);
}
};
@@ -1519,4 +1519,4 @@ void AddSC_boss_valithria_dreamwalker()
new spell_valithria_suppression();
new achievement_portal_jockey();
}
}

View File

@@ -1784,7 +1784,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_frostwing_vrykulAI(creature);
return GetIcecrownCitadelAI<npc_frostwing_vrykulAI>(creature);
}
};
@@ -1822,7 +1822,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_impaling_spearAI(creature);
return GetIcecrownCitadelAI<npc_impaling_spearAI>(creature);
}
};
@@ -2614,7 +2614,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_icc_skybreaker_hierophantAI(creature);
return GetIcecrownCitadelAI<npc_icc_skybreaker_hierophantAI>(creature);
}
};
@@ -2668,7 +2668,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_icc_skybreaker_marksmanAI(creature);
return GetIcecrownCitadelAI<npc_icc_skybreaker_marksmanAI>(creature);
}
};
@@ -2729,7 +2729,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_icc_skybreaker_vicarAI(creature);
return GetIcecrownCitadelAI<npc_icc_skybreaker_vicarAI>(creature);
}
};
@@ -2796,7 +2796,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_icc_skybreaker_luminaryAI(creature);
return GetIcecrownCitadelAI<npc_icc_skybreaker_luminaryAI>(creature);
}
};
@@ -2909,7 +2909,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_icc_valkyr_heraldAI(creature);
return GetIcecrownCitadelAI<npc_icc_valkyr_heraldAI>(creature);
}
};
@@ -3035,7 +3035,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_icc_severed_essenceAI(creature);
return GetIcecrownCitadelAI<npc_icc_severed_essenceAI>(creature);
}
};
@@ -3128,7 +3128,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_icc_spire_frostwyrmAI(creature);
return GetIcecrownCitadelAI<npc_icc_spire_frostwyrmAI>(creature);
}
};
@@ -3274,7 +3274,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_icc_vengeful_fleshreaperAI(creature);
return GetIcecrownCitadelAI<npc_icc_vengeful_fleshreaperAI>(creature);
}
};
@@ -3418,7 +3418,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_icc_nerubar_broodkeeperAI(creature);
return GetIcecrownCitadelAI<npc_icc_nerubar_broodkeeperAI>(creature);
}
};
@@ -3607,7 +3607,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_icc_gauntlet_controllerAI>(creature);
return GetIcecrownCitadelAI<npc_icc_gauntlet_controllerAI>(creature);
}
};
@@ -3707,7 +3707,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_icc_putricades_trapAI>(creature);
return GetIcecrownCitadelAI<npc_icc_putricades_trapAI>(creature);
}
};

View File

@@ -607,14 +607,10 @@ private:
uint32 _triggerId;
};
template<class AI>
CreatureAI* GetIcecrownCitadelAI(Creature* creature)
template <class AI, class T>
inline AI* GetIcecrownCitadelAI(T* obj)
{
if (InstanceMap* instance = creature->GetMap()->ToInstanceMap())
if (instance->GetInstanceScript())
if (instance->GetScriptId() == sObjectMgr->GetScriptId(ICCScriptName))
return new AI(creature);
return nullptr;
return GetInstanceAI<AI>(obj, ICCScriptName);
}
#endif // ICECROWN_CITADEL_H_

View File

@@ -54,7 +54,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_anubrekhanAI (pCreature);
return GetNaxxramasAI<boss_anubrekhanAI>(pCreature);
}
struct boss_anubrekhanAI : public BossAI

View File

@@ -50,7 +50,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_faerlinaAI (pCreature);
return GetNaxxramasAI<boss_faerlinaAI>(pCreature);
}
struct boss_faerlinaAI : public BossAI

View File

@@ -111,7 +111,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_four_horsemenAI (pCreature);
return GetNaxxramasAI<boss_four_horsemenAI>(pCreature);
}
struct boss_four_horsemenAI : public BossAI

View File

@@ -58,7 +58,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_gluthAI (pCreature);
return GetNaxxramasAI<boss_gluthAI>(pCreature);
}
struct boss_gluthAI : public BossAI

View File

@@ -178,7 +178,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_gothikAI (pCreature);
return GetNaxxramasAI<boss_gothikAI>(pCreature);
}
struct boss_gothikAI : public BossAI
@@ -504,7 +504,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_boss_gothik_minionAI (pCreature);
return GetNaxxramasAI<npc_boss_gothik_minionAI>(pCreature);
}
struct npc_boss_gothik_minionAI : public CombatAI

View File

@@ -50,7 +50,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_grobbulusAI (pCreature);
return GetNaxxramasAI<boss_grobbulusAI>(pCreature);
}
struct boss_grobbulusAI : public BossAI
@@ -186,7 +186,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_grobbulus_poison_cloudAI(pCreature);
return GetNaxxramasAI<boss_grobbulus_poison_cloudAI>(pCreature);
}
struct boss_grobbulus_poison_cloudAI : public NullCreatureAI

View File

@@ -50,7 +50,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_heiganAI (pCreature);
return GetNaxxramasAI<boss_heiganAI>(pCreature);
}
struct boss_heiganAI : public BossAI

View File

@@ -125,7 +125,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_kelthuzadAI (pCreature);
return GetNaxxramasAI<boss_kelthuzadAI>(pCreature);
}
struct boss_kelthuzadAI : public BossAI
@@ -505,7 +505,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_kelthuzad_minionAI (pCreature);
return GetNaxxramasAI<boss_kelthuzad_minionAI>(pCreature);
}
struct boss_kelthuzad_minionAI : public ScriptedAI

View File

@@ -42,7 +42,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_loathebAI (pCreature);
return GetNaxxramasAI<boss_loathebAI>(pCreature);
}
struct boss_loathebAI : public BossAI

View File

@@ -57,7 +57,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_maexxnaAI (pCreature);
return GetNaxxramasAI<boss_maexxnaAI>(pCreature);
}
struct boss_maexxnaAI : public BossAI
@@ -214,7 +214,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_maexxna_webwrapAI (pCreature);
return GetNaxxramasAI<boss_maexxna_webwrapAI>(pCreature);
}
struct boss_maexxna_webwrapAI : public NullCreatureAI

View File

@@ -70,7 +70,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_nothAI (pCreature);
return GetNaxxramasAI<boss_nothAI>(pCreature);
}
struct boss_nothAI : public BossAI

View File

@@ -44,7 +44,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_patchwerkAI (pCreature);
return GetNaxxramasAI<boss_patchwerkAI>(pCreature);
}
struct boss_patchwerkAI : public BossAI

View File

@@ -45,7 +45,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_razuviousAI (pCreature);
return GetNaxxramasAI<boss_razuviousAI>(pCreature);
}
struct boss_razuviousAI : public BossAI
@@ -168,7 +168,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_razuvious_minionAI (pCreature);
return GetNaxxramasAI<boss_razuvious_minionAI>(pCreature);
}
struct boss_razuvious_minionAI : public ScriptedAI

View File

@@ -72,7 +72,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sapphironAI (pCreature);
return GetNaxxramasAI<boss_sapphironAI>(pCreature);
}
struct boss_sapphironAI : public BossAI

View File

@@ -102,7 +102,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_thaddiusAI (pCreature);
return GetNaxxramasAI<boss_thaddiusAI>(pCreature);
}
struct boss_thaddiusAI : public BossAI
@@ -356,7 +356,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_thaddius_summonAI (pCreature);
return GetNaxxramasAI<boss_thaddius_summonAI>(pCreature);
}
struct boss_thaddius_summonAI : public ScriptedAI
@@ -709,7 +709,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_teslaAI>(creature);
return GetNaxxramasAI<npc_teslaAI>(creature);
}
struct npc_teslaAI : public ScriptedAI

View File

@@ -1189,7 +1189,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_naxxramas_miscAI (pCreature);
return GetNaxxramasAI<boss_naxxramas_miscAI>(pCreature);
}
struct boss_naxxramas_miscAI : public NullCreatureAI

View File

@@ -6,6 +6,9 @@
#define DEF_NAXXRAMAS_H
#include "SpellScript.h"
#include "CreatureAIImpl.h"
#define NaxxramasScriptName "instance_naxxramas"
enum Encouters
{
@@ -176,4 +179,10 @@ enum NXEvents
EVENT_FROSTWYRM_WATERFALL_DOOR = 2
};
template <class AI, class T>
inline AI* GetNaxxramasAI(T* obj)
{
return GetInstanceAI<AI>(obj, NaxxramasScriptName);
}
#endif

View File

@@ -188,7 +188,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_malygosAI (pCreature);
return GetEyeOfEternityAI<boss_malygosAI>(pCreature);
}
struct boss_malygosAI : public ScriptedAI
@@ -852,7 +852,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_vortex_rideAI (pCreature);
return GetEyeOfEternityAI<npc_vortex_rideAI> (pCreature);
}
struct npc_vortex_rideAI : public VehicleAI
@@ -950,7 +950,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_power_sparkAI (pCreature);
return GetEyeOfEternityAI<npc_power_sparkAI>(pCreature);
}
struct npc_power_sparkAI : public NullCreatureAI
@@ -1046,7 +1046,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_nexus_lordAI (pCreature);
return GetEyeOfEternityAI<npc_nexus_lordAI>(pCreature);
}
struct npc_nexus_lordAI : public ScriptedAI
@@ -1139,7 +1139,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_scion_of_eternityAI (pCreature);
return GetEyeOfEternityAI<npc_scion_of_eternityAI>(pCreature);
}
struct npc_scion_of_eternityAI : public ScriptedAI
@@ -1213,7 +1213,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_hover_diskAI (pCreature);
return GetEyeOfEternityAI<npc_hover_diskAI>(pCreature);
}
struct npc_hover_diskAI : public VehicleAI
@@ -1355,7 +1355,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_alexstraszaAI (pCreature);
return GetEyeOfEternityAI<npc_alexstraszaAI>(pCreature);
}
struct npc_alexstraszaAI : public ScriptedAI
@@ -1412,7 +1412,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_eoe_wyrmrest_skytalonAI (pCreature);
return GetEyeOfEternityAI<npc_eoe_wyrmrest_skytalonAI>(pCreature);
}
struct npc_eoe_wyrmrest_skytalonAI : public VehicleAI

View File

@@ -8,6 +8,8 @@
#include "Chat.h"
#include "CreatureAIImpl.h"
#define EyeOfEternityScriptName "instance_eye_of_eternity"
enum Objects
{
GO_NEXUS_PLATFORM = 193070,
@@ -101,4 +103,10 @@ private:
uint64 _playerGUID;
};
template <class AI, class T>
inline AI* GetEyeOfEternityAI(T* obj)
{
return GetInstanceAI<AI>(obj, EyeOfEternityScriptName);
}
#endif

View File

@@ -61,7 +61,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_anomalusAI (creature);
return GetNexusAI<boss_anomalusAI>(creature);
}
struct boss_anomalusAI : public BossAI

View File

@@ -37,7 +37,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_commander_stoutbeardAI>(creature);
return GetNexusAI<boss_commander_stoutbeardAI>(creature);
}
struct boss_commander_stoutbeardAI : public BossAI

View File

@@ -46,7 +46,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_keristraszaAI>(creature);
return GetNexusAI<boss_keristraszaAI>(creature);
}
struct boss_keristraszaAI : public BossAI
@@ -199,4 +199,4 @@ void AddSC_boss_keristrasza()
{
new boss_keristrasza();
new achievement_intense_cold();
}
}

View File

@@ -67,7 +67,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_magus_telestraAI>(creature);
return GetNexusAI<boss_magus_telestraAI>(creature);
}
struct boss_magus_telestraAI : public BossAI

View File

@@ -54,7 +54,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_ormorokAI>(creature);
return GetNexusAI<boss_ormorokAI>(creature);
}
struct boss_ormorokAI : public BossAI
@@ -174,7 +174,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return GetInstanceAI<npc_crystal_spikeAI>(pCreature);
return GetNexusAI<npc_crystal_spikeAI>(pCreature);
}
struct npc_crystal_spikeAI : public NullCreatureAI

View File

@@ -185,7 +185,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_crystalline_frayerAI>(creature);
return GetNexusAI<npc_crystalline_frayerAI>(creature);
}
struct npc_crystalline_frayerAI : public ScriptedAI

View File

@@ -5,13 +5,18 @@
#ifndef DEF_NEXUS_H
#define DEF_NEXUS_H
#include "CreatureAIImpl.h"
#include "GameEventMgr.h"
#include "GameEventMgr.h"
#include "GridNotifiers.h"
#include "GridNotifiers.h"
#include "PassiveAI.h"
#include "Player.h"
#include "SpellAuras.h"
#include "SpellScript.h"
#define NexusScriptName "instance_nexus"
enum eTypes
{
DATA_MAGUS_TELESTRA_EVENT = 0,
@@ -44,4 +49,10 @@ enum Npcs
GO_ORMOROK_SPHERE = 188528
};
template <class AI, class T>
inline AI* GetNexusAI(T* obj)
{
return GetInstanceAI<AI>(obj, NexusScriptName);
}
#endif

View File

@@ -49,7 +49,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_drakosAI (pCreature);
return GetOculusAI<boss_drakosAI>(pCreature);
}
struct boss_drakosAI : public ScriptedAI
@@ -174,7 +174,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_oculus_unstable_sphereAI (pCreature);
return GetOculusAI<npc_oculus_unstable_sphereAI>(pCreature);
}
struct npc_oculus_unstable_sphereAI : public ScriptedAI

View File

@@ -60,7 +60,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_eregosAI (pCreature);
return GetOculusAI<boss_eregosAI>(pCreature);
}
struct boss_eregosAI : public ScriptedAI

View File

@@ -82,7 +82,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_uromAI (pCreature);
return GetOculusAI<boss_uromAI>(pCreature);
}
struct boss_uromAI : public ScriptedAI

View File

@@ -69,7 +69,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_varosAI (pCreature);
return GetOculusAI<boss_varosAI>(pCreature);
}
struct boss_varosAI : public ScriptedAI
{

View File

@@ -68,7 +68,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_oculus_drakegiverAI(creature);
return GetOculusAI<npc_oculus_drakegiverAI>(creature);
}
struct npc_oculus_drakegiverAI : public ScriptedAI {
@@ -324,7 +324,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_oculus_drakeAI (creature);
return GetOculusAI<npc_oculus_drakeAI>(creature);
}
struct npc_oculus_drakeAI : public VehicleAI
@@ -509,7 +509,7 @@ public:
};
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_centrifuge_constructAI(creature);
return GetOculusAI<npc_centrifuge_constructAI>(creature);
}
};

View File

@@ -5,10 +5,13 @@
#ifndef DEF_OCULUS_H
#define DEF_OCULUS_H
#include "CreatureAIImpl.h"
#include "SpellAuraEffects.h"
#include "SpellAuras.h"
#include "SpellScript.h"
#define OculusScriptName "instance_oculus"
Position const VerdisaPOS = { 949.056f, 1032.97f, 359.967f, 1.035795f };
Position const BelgaristraszPOS = { 941.355f, 1044.26f, 359.967f, 0.222459f };
Position const EternosPOS = { 943.202f, 1059.35f, 359.967f, 5.757278f };
@@ -91,4 +94,11 @@ enum MISC
{
POINT_MOVE_DRAKES
};
template <class AI, class T>
inline AI* GetOculusAI(T* obj)
{
return GetInstanceAI<AI>(obj, OculusScriptName);
}
#endif

View File

@@ -100,7 +100,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_bjarngrimAI (creature);
return GetHallsOfLightningAI<boss_bjarngrimAI>(creature);
}
struct boss_bjarngrimAI : public npc_escortAI
@@ -364,7 +364,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_stormforged_lieutenantAI (creature);
return GetHallsOfLightningAI<npc_stormforged_lieutenantAI>(creature);
}
struct npc_stormforged_lieutenantAI : public ScriptedAI

View File

@@ -59,7 +59,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_ionarAI (creature);
return GetHallsOfLightningAI<boss_ionarAI>(creature);
}
struct boss_ionarAI : public ScriptedAI
@@ -220,7 +220,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_spark_of_ionarAI (creature);
return GetHallsOfLightningAI<npc_spark_of_ionarAI>(creature);
}
struct npc_spark_of_ionarAI : public ScriptedAI

View File

@@ -53,7 +53,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_lokenAI (creature);
return GetHallsOfLightningAI<boss_lokenAI>(creature);
}
struct boss_lokenAI : public ScriptedAI

View File

@@ -72,7 +72,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_volkhanAI (creature);
return GetHallsOfLightningAI<boss_volkhanAI>(creature);
}
struct boss_volkhanAI : public ScriptedAI
@@ -313,7 +313,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_molten_golemAI (creature);
return GetHallsOfLightningAI<npc_molten_golemAI>(creature);
}
struct npc_molten_golemAI : public ScriptedAI
@@ -437,7 +437,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_hol_monumentAI(creature);
return GetHallsOfLightningAI<npc_hol_monumentAI>(creature);
}
struct npc_hol_monumentAI : public ScriptedAI

View File

@@ -5,6 +5,10 @@
#ifndef DEF_HALLS_OF_LIGHTNING_H
#define DEF_HALLS_OF_LIGHTNING_H
#include "CreatureAIImpl.h"
#define HallsOfLightningScriptName "instance_halls_of_lightning"
enum HoLEvents
{
TYPE_BJARNGRIM = 0,
@@ -35,4 +39,10 @@ enum HoLGOs
GO_LOKEN_THRONE = 192654,
};
template <class AI, class T>
inline AI* GetHallsOfLightningAI(T* obj)
{
return GetInstanceAI<AI>(obj, HallsOfLightningScriptName);
}
#endif

View File

@@ -47,7 +47,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_krystallusAI (pCreature);
return GetHallsOfStoneAI<boss_krystallusAI>(pCreature);
}
struct boss_krystallusAI : public ScriptedAI

View File

@@ -40,7 +40,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_maiden_of_griefAI (pCreature);
return GetHallsOfStoneAI<boss_maiden_of_griefAI>(pCreature);
}
struct boss_maiden_of_griefAI : public ScriptedAI

View File

@@ -98,7 +98,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sjonnirAI (pCreature);
return GetHallsOfStoneAI<boss_sjonnirAI>(pCreature);
}
struct boss_sjonnirAI : public ScriptedAI
@@ -379,7 +379,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sjonnir_dwarfAI (pCreature);
return GetHallsOfStoneAI<boss_sjonnir_dwarfAI>(pCreature);
}
struct boss_sjonnir_dwarfAI : public ScriptedAI
@@ -403,7 +403,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sjonnir_iron_sludgeAI (pCreature);
return GetHallsOfStoneAI<boss_sjonnir_iron_sludgeAI>(pCreature);
}
struct boss_sjonnir_iron_sludgeAI : public ScriptedAI
@@ -459,7 +459,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sjonnir_malformed_oozeAI (pCreature);
return GetHallsOfStoneAI<boss_sjonnir_malformed_oozeAI>(pCreature);
}
struct boss_sjonnir_malformed_oozeAI : public ScriptedAI

View File

@@ -5,6 +5,10 @@
#ifndef DEF_HALLS_OF_STONE_H
#define DEF_HALLS_OF_STONE_H
#include "CreatureAIImpl.h"
#define HallsOfStoneScriptName "instance_halls_of_stone"
enum Encounter
{
BOSS_KRYSTALLUS = 0,
@@ -44,4 +48,10 @@ enum npcs
NPC_BRANN = 28070,
};
template <class AI, class T>
inline AI* GetHallsOfStoneAI(T* obj)
{
return GetInstanceAI<AI>(obj, HallsOfStoneScriptName);
}
#endif

View File

@@ -793,7 +793,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_algalon_the_observerAI(creature);
return GetUlduarAI<boss_algalon_the_observerAI>(creature);
}
};
@@ -891,7 +891,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_brann_bronzebeard_algalonAI(creature);
return GetUlduarAI<npc_brann_bronzebeard_algalonAI>(creature);
}
};
@@ -927,7 +927,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_collapsing_starAI(creature);
return GetUlduarAI<npc_collapsing_starAI>(creature);
}
};
@@ -1018,7 +1018,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_living_constellationAI(creature);
return GetUlduarAI<npc_living_constellationAI>(creature);
}
};
@@ -1066,7 +1066,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_algalon_worm_holeAI(creature);
return GetUlduarAI<npc_algalon_worm_holeAI>(creature);
}
};

View File

@@ -184,7 +184,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_steelbreakerAI (pCreature);
return GetUlduarAI<boss_steelbreakerAI>(pCreature);
}
struct boss_steelbreakerAI : public ScriptedAI
@@ -375,7 +375,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_runemaster_molgeimAI (pCreature);
return GetUlduarAI<boss_runemaster_molgeimAI>(pCreature);
}
struct boss_runemaster_molgeimAI : public ScriptedAI
@@ -540,7 +540,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_assembly_lightningAI (pCreature);
return GetUlduarAI<npc_assembly_lightningAI>(pCreature);
}
struct npc_assembly_lightningAI : public ScriptedAI
@@ -585,7 +585,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_stormcaller_brundirAI (pCreature);
return GetUlduarAI<boss_stormcaller_brundirAI>(pCreature);
}
struct boss_stormcaller_brundirAI : public ScriptedAI

View File

@@ -95,7 +95,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_auriayaAI (pCreature);
return GetUlduarAI<boss_auriayaAI>(pCreature);
}
struct boss_auriayaAI : public ScriptedAI
@@ -278,7 +278,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_auriaya_sanctum_sentryAI (pCreature);
return GetUlduarAI<npc_auriaya_sanctum_sentryAI>(pCreature);
}
struct npc_auriaya_sanctum_sentryAI : public ScriptedAI
@@ -340,7 +340,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_auriaya_feral_defenderAI (pCreature);
return GetUlduarAI<npc_auriaya_feral_defenderAI>(pCreature);
}
struct npc_auriaya_feral_defenderAI : public ScriptedAI

Some files were not shown because too many files have changed in this diff Show More