mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 16:38:42 +01:00
Merge branch 'pr/n15_Supabad'
This commit is contained in:
@@ -250,6 +250,7 @@ public:
|
||||
void Reset()
|
||||
{
|
||||
_Reset();
|
||||
uiShutdown = 0;
|
||||
me->SetReactState(REACT_DEFENSIVE);
|
||||
if (me->GetVehicleKit())
|
||||
{
|
||||
@@ -356,8 +357,10 @@ public:
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!me->getVictim())
|
||||
UpdateVictim();
|
||||
if (!UpdateVictim() || !CheckInRoom())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
if (uiShutdown == RAID_MODE(2,4))
|
||||
{
|
||||
@@ -382,10 +385,7 @@ public:
|
||||
}
|
||||
|
||||
if (me->HasUnitState(UNIT_STAT_CASTING))
|
||||
return;
|
||||
|
||||
|
||||
events.Update(diff);
|
||||
return;
|
||||
|
||||
uint32 eventId = events.GetEvent();
|
||||
|
||||
|
||||
@@ -18,21 +18,10 @@
|
||||
#include "ScriptPCH.h"
|
||||
#include "ulduar.h"
|
||||
|
||||
enum eGameObjects
|
||||
static const DoorData doorData[] =
|
||||
{
|
||||
GO_KOLOGARN_CHEST_HERO = 195047,
|
||||
GO_KOLOGARN_CHEST = 195046,
|
||||
GO_KOLOGARN_BRIDGE = 194232,
|
||||
GO_KOLOGARN_DOOR = 194553,
|
||||
GO_THORIM_CHEST_HERO = 194315,
|
||||
GO_THORIM_CHEST = 194314,
|
||||
GO_HODIR_CHEST_HERO = 194308,
|
||||
GO_HODIR_CHEST = 194307,
|
||||
GO_FREYA_CHEST_HERO = 194325,
|
||||
GO_FREYA_CHEST = 194324,
|
||||
GO_LEVIATHAN_DOOR = 194905,
|
||||
GO_LEVIATHAN_GATE = 194630,
|
||||
GO_VEZAX_DOOR = 194750,
|
||||
{GO_LEVIATHAN_DOOR, TYPE_LEVIATHAN, DOOR_TYPE_ROOM, BOUNDARY_S},
|
||||
{0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE}
|
||||
};
|
||||
|
||||
class instance_ulduar : public InstanceMapScript
|
||||
@@ -47,7 +36,7 @@ public:
|
||||
|
||||
struct instance_ulduar_InstanceMapScript : public InstanceScript
|
||||
{
|
||||
instance_ulduar_InstanceMapScript(Map* pMap) : InstanceScript(pMap) { Initialize(); };
|
||||
instance_ulduar_InstanceMapScript(InstanceMap* map) : InstanceScript(map) { Initialize(); };
|
||||
|
||||
uint32 uiEncounter[MAX_ENCOUNTER];
|
||||
std::string m_strInstData;
|
||||
@@ -70,7 +59,6 @@ public:
|
||||
uint64 uiVezaxGUID;
|
||||
uint64 uiYoggSaronGUID;
|
||||
uint64 uiAlgalonGUID;
|
||||
uint64 uiLeviathanDoor[7];
|
||||
uint64 uiLeviathanGateGUID;
|
||||
uint64 uiVezaxDoorGUID;
|
||||
|
||||
@@ -86,6 +74,7 @@ public:
|
||||
void Initialize()
|
||||
{
|
||||
SetBossNumber(MAX_ENCOUNTER);
|
||||
LoadDoorData(doorData);
|
||||
uiIgnisGUID = 0;
|
||||
uiRazorscaleGUID = 0;
|
||||
uiExpCommanderGUID = 0;
|
||||
@@ -113,7 +102,6 @@ public:
|
||||
|
||||
memset(&uiEncounter, 0, sizeof(uiEncounter));
|
||||
memset(&uiAssemblyGUIDs, 0, sizeof(uiAssemblyGUIDs));
|
||||
memset(&uiLeviathanDoor, 0, sizeof(uiLeviathanDoor));
|
||||
}
|
||||
|
||||
bool IsEncounterInProgress() const
|
||||
@@ -236,18 +224,12 @@ public:
|
||||
uiFreyaChestGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_LEVIATHAN_DOOR:
|
||||
uiLeviathanDoor[flag] = go->GetGUID();
|
||||
HandleGameObject(NULL, true, go);
|
||||
flag++;
|
||||
if (flag == 7)
|
||||
flag =0;
|
||||
AddDoor(go, true);
|
||||
break;
|
||||
case GO_LEVIATHAN_GATE:
|
||||
uiLeviathanGateGUID = go->GetGUID();
|
||||
if (GetBossState(TYPE_LEVIATHAN) == DONE)
|
||||
go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
|
||||
else
|
||||
HandleGameObject(NULL, false, go);
|
||||
break;
|
||||
case GO_VEZAX_DOOR:
|
||||
uiVezaxDoorGUID = go->GetGUID();
|
||||
@@ -256,6 +238,18 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void OnGameObjectRemove(GameObject* go)
|
||||
{
|
||||
switch (go->GetEntry())
|
||||
{
|
||||
case GO_LEVIATHAN_DOOR:
|
||||
AddDoor(go, false);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ProcessEvent(GameObject* /*go*/, uint32 eventId)
|
||||
{
|
||||
// Flame Leviathan's Tower Event triggers
|
||||
@@ -291,13 +285,6 @@ public:
|
||||
switch (type)
|
||||
{
|
||||
case TYPE_LEVIATHAN:
|
||||
if (state == IN_PROGRESS)
|
||||
for (uint8 uiI = 0; uiI < 7; ++uiI)
|
||||
HandleGameObject(uiLeviathanDoor[uiI],false);
|
||||
else
|
||||
for (uint8 uiI = 0; uiI < 7; ++uiI)
|
||||
HandleGameObject(uiLeviathanDoor[uiI],true);
|
||||
break;
|
||||
case TYPE_IGNIS:
|
||||
case TYPE_RAZORSCALE:
|
||||
case TYPE_XT002:
|
||||
|
||||
@@ -77,6 +77,23 @@ enum eNPCs
|
||||
NPC_ALGALON = 32871,
|
||||
};
|
||||
|
||||
enum eGameObjects
|
||||
{
|
||||
GO_KOLOGARN_CHEST_HERO = 195047,
|
||||
GO_KOLOGARN_CHEST = 195046,
|
||||
GO_KOLOGARN_BRIDGE = 194232,
|
||||
GO_KOLOGARN_DOOR = 194553,
|
||||
GO_THORIM_CHEST_HERO = 194315,
|
||||
GO_THORIM_CHEST = 194314,
|
||||
GO_HODIR_CHEST_HERO = 194308,
|
||||
GO_HODIR_CHEST = 194307,
|
||||
GO_FREYA_CHEST_HERO = 194325,
|
||||
GO_FREYA_CHEST = 194324,
|
||||
GO_LEVIATHAN_DOOR = 194905,
|
||||
GO_LEVIATHAN_GATE = 194630,
|
||||
GO_VEZAX_DOOR = 194750,
|
||||
};
|
||||
|
||||
enum eTowerEvents
|
||||
{
|
||||
EVENT_TOWER_OF_STORM_DESTROYED = 21031,
|
||||
|
||||
Reference in New Issue
Block a user