mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-23 21:56:22 +00:00
refactor(Scripts/Karazhan): Move Malchezaar door handling to the inst… (#17730)
This commit is contained in:
@@ -84,7 +84,6 @@ struct boss_malchezaar : public BossAI
|
||||
clearweapons();
|
||||
relays.clear();
|
||||
infernalTargets.clear();
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), true);
|
||||
}
|
||||
|
||||
void clearweapons()
|
||||
@@ -149,7 +148,6 @@ struct boss_malchezaar : public BossAI
|
||||
{
|
||||
_JustDied();
|
||||
Talk(SAY_DEATH);
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), true);
|
||||
}
|
||||
|
||||
void SpawnInfernal(Creature* relay, Creature* target)
|
||||
@@ -193,8 +191,6 @@ struct boss_malchezaar : public BossAI
|
||||
me->GetCreaturesWithEntryInRange(relays, 250.0f, NPC_INFERNAL_RELAY);
|
||||
me->GetCreaturesWithEntryInRange(infernalTargets, 100.0f, NPC_INFERNAL_TARGET);
|
||||
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), false);
|
||||
|
||||
scheduler.Schedule(30s, [this](TaskContext context)
|
||||
{
|
||||
DoCastAOE(SPELL_ENFEEBLE);
|
||||
@@ -282,7 +278,7 @@ struct npc_netherspite_infernal : public ScriptedAI
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
_scheduler.Update(diff);
|
||||
scheduler.Update(diff);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* who) override
|
||||
@@ -306,7 +302,7 @@ struct npc_netherspite_infernal : public ScriptedAI
|
||||
me->SetDisplayId(me->GetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID));
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
||||
_scheduler.Schedule(4s, [this](TaskContext /*context*/)
|
||||
scheduler.Schedule(4s, [this](TaskContext /*context*/)
|
||||
{
|
||||
DoCastSelf(SPELL_HELLFIRE);
|
||||
});
|
||||
@@ -317,9 +313,6 @@ struct npc_netherspite_infernal : public ScriptedAI
|
||||
{
|
||||
damage = 0;
|
||||
}
|
||||
|
||||
private:
|
||||
TaskScheduler _scheduler;
|
||||
};
|
||||
|
||||
struct npc_malchezaar_axe : public ScriptedAI
|
||||
@@ -337,7 +330,7 @@ struct npc_malchezaar_axe : public ScriptedAI
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
DoZoneInCombat();
|
||||
_scheduler.Schedule(7500ms, [this](TaskContext context)
|
||||
scheduler.Schedule(7500ms, [this](TaskContext context)
|
||||
{
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true))
|
||||
{
|
||||
@@ -358,12 +351,9 @@ struct npc_malchezaar_axe : public ScriptedAI
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
_scheduler.Update(diff,
|
||||
scheduler.Update(diff,
|
||||
std::bind(&ScriptedAI::DoMeleeAttackIfReady, this));
|
||||
}
|
||||
|
||||
private:
|
||||
TaskScheduler _scheduler;
|
||||
};
|
||||
|
||||
// 30843 - Enfeeble
|
||||
|
||||
@@ -57,9 +57,10 @@ ObjectData const gameObjectData[] =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_MASTERS_TERRACE_DOOR, DATA_NIGHTBANE, DOOR_TYPE_ROOM },
|
||||
{ GO_MASTERS_TERRACE_DOOR2, DATA_NIGHTBANE, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM }
|
||||
{ GO_MASTERS_TERRACE_DOOR, DATA_NIGHTBANE, DOOR_TYPE_ROOM },
|
||||
{ GO_MASTERS_TERRACE_DOOR2, DATA_NIGHTBANE, DOOR_TYPE_ROOM },
|
||||
{ GO_NETHERSPACE_DOOR, DATA_MALCHEZAAR, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM }
|
||||
};
|
||||
|
||||
class instance_karazhan : public InstanceMapScript
|
||||
@@ -371,13 +372,6 @@ public:
|
||||
case GO_GAMESMAN_HALL_EXIT_DOOR:
|
||||
m_uiGamesmansExitDoor = go->GetGUID();
|
||||
break;
|
||||
case GO_NETHERSPACE_DOOR:
|
||||
m_uiNetherspaceDoor = go->GetGUID();
|
||||
if (GetBossState(DATA_PRINCE) != IN_PROGRESS)
|
||||
go->SetGameObjectFlag(GO_FLAG_LOCKED);
|
||||
else
|
||||
go->RemoveGameObjectFlag(GO_FLAG_LOCKED);
|
||||
break;
|
||||
case GO_SIDE_ENTRANCE_DOOR:
|
||||
if (GetBossState(DATA_OPERA_PERFORMANCE) == DONE)
|
||||
go->RemoveGameObjectFlag(GO_FLAG_LOCKED);
|
||||
@@ -487,8 +481,6 @@ public:
|
||||
return m_uiGamesmansDoor;
|
||||
case DATA_GO_GAME_EXIT_DOOR:
|
||||
return m_uiGamesmansExitDoor;
|
||||
case DATA_GO_NETHER_DOOR:
|
||||
return m_uiNetherspaceDoor;
|
||||
case DATA_IMAGE_OF_MEDIVH:
|
||||
return ImageGUID;
|
||||
case DATA_NIGHTBANE:
|
||||
@@ -521,7 +513,6 @@ public:
|
||||
ObjectGuid m_uiMassiveDoor; // Door at Netherspite
|
||||
ObjectGuid m_uiGamesmansDoor; // Door before Chess
|
||||
ObjectGuid m_uiGamesmansExitDoor; // Door after Chess
|
||||
ObjectGuid m_uiNetherspaceDoor; // Door at Malchezaar
|
||||
ObjectGuid ImageGUID;
|
||||
ObjectGuid DustCoveredChest;
|
||||
ObjectGuid m_uiRelayGUID;
|
||||
|
||||
@@ -50,7 +50,6 @@ enum KZDataTypes
|
||||
DATA_GO_STAGEDOORRIGHT = 20,
|
||||
DATA_GO_LIBRARY_DOOR = 21,
|
||||
DATA_GO_MASSIVE_DOOR = 22,
|
||||
DATA_GO_NETHER_DOOR = 23,
|
||||
DATA_GO_GAME_DOOR = 24,
|
||||
DATA_GO_GAME_EXIT_DOOR = 25,
|
||||
DATA_IMAGE_OF_MEDIVH = 26,
|
||||
|
||||
Reference in New Issue
Block a user