mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-23 13:46:24 +00:00
feat(Core/Misc): implement ObjectGuid class (port from TC) (#4885)
This commit is contained in:
@@ -291,7 +291,7 @@ public:
|
||||
// Store dragons
|
||||
for (uint8 i = 0; i < MAX_DRAGONS; ++i)
|
||||
{
|
||||
Creature* dragon = ObjectAccessor::GetCreature(*me, instance->GetData64(dragons[i]));
|
||||
Creature* dragon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(dragons[i]));
|
||||
if (!dragon || !dragon->IsAlive() || instance->GetBossState(dragons[i]) == DONE)
|
||||
{
|
||||
continue;
|
||||
@@ -420,7 +420,7 @@ public:
|
||||
summons.RemoveNotExisting();
|
||||
if (!summons.empty())
|
||||
{
|
||||
for (uint64 const summonGuid : summons)
|
||||
for (ObjectGuid const summonGuid : summons)
|
||||
{
|
||||
Creature* summon = ObjectAccessor::GetCreature(*me, summonGuid);
|
||||
if (summon && summon->GetEntry() == NPC_FIRE_CYCLONE)
|
||||
@@ -486,7 +486,7 @@ public:
|
||||
case EVENT_SARTHARION_CALL_TENEBRON:
|
||||
{
|
||||
Talk(SAY_SARTHARION_CALL_TENEBRON);
|
||||
if (Creature* tenebron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TENEBRON)))
|
||||
if (Creature* tenebron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TENEBRON)))
|
||||
{
|
||||
tenebron->AI()->DoAction(ACTION_CALL_DRAGON);
|
||||
}
|
||||
@@ -495,7 +495,7 @@ public:
|
||||
case EVENT_SARTHARION_CALL_SHADRON:
|
||||
{
|
||||
Talk(SAY_SARTHARION_CALL_SHADRON);
|
||||
if (Creature* shadron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADRON)))
|
||||
if (Creature* shadron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADRON)))
|
||||
{
|
||||
shadron->AI()->DoAction(ACTION_CALL_DRAGON);
|
||||
}
|
||||
@@ -504,7 +504,7 @@ public:
|
||||
case EVENT_SARTHARION_CALL_VESPERON:
|
||||
{
|
||||
Talk(SAY_SARTHARION_CALL_VESPERON);
|
||||
if (Creature* vesperon = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VESPERON)))
|
||||
if (Creature* vesperon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VESPERON)))
|
||||
{
|
||||
vesperon->AI()->DoAction(ACTION_CALL_DRAGON);
|
||||
}
|
||||
@@ -556,7 +556,7 @@ public:
|
||||
uint8 iter = 0;
|
||||
if (!summons.empty())
|
||||
{
|
||||
for (uint64 const summonGuid : summons)
|
||||
for (ObjectGuid const summonGuid : summons)
|
||||
{
|
||||
Creature* summon = ObjectAccessor::GetCreature(*me, summonGuid);
|
||||
if (summon && summon->GetEntry() == NPC_FIRE_CYCLONE && iter == rand)
|
||||
@@ -636,7 +636,7 @@ public:
|
||||
return;
|
||||
}
|
||||
|
||||
for (uint64 const guid : summons)
|
||||
for (ObjectGuid const guid : summons)
|
||||
{
|
||||
Creature* tsunami = ObjectAccessor::GetCreature(*me, guid);
|
||||
if (!tsunami || tsunami->GetEntry() != NPC_FLAME_TSUNAMI)
|
||||
@@ -664,7 +664,7 @@ public:
|
||||
continue;
|
||||
}
|
||||
|
||||
if (Creature* dragon = ObjectAccessor::GetCreature(*me, instance->GetData64(dragons[i])))
|
||||
if (Creature* dragon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(dragons[i])))
|
||||
{
|
||||
if (checkCombat && dragon->IsInCombat())
|
||||
{
|
||||
@@ -706,9 +706,7 @@ public:
|
||||
|
||||
struct boss_sartharion_dragonAI : public BossAI
|
||||
{
|
||||
boss_sartharion_dragonAI(Creature* pCreature, uint32 bossId) : BossAI(pCreature, bossId),
|
||||
portalGUID(0),
|
||||
isCalledBySartharion(false)
|
||||
boss_sartharion_dragonAI(Creature* pCreature, uint32 bossId) : BossAI(pCreature, bossId), isCalledBySartharion(false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -722,7 +720,7 @@ struct boss_sartharion_dragonAI : public BossAI
|
||||
me->SetSpeed(MOVE_FLIGHT, 1.0f);
|
||||
me->SetCanFly(false);
|
||||
me->ResetLootMode();
|
||||
portalGUID = 0;
|
||||
portalGUID.Clear();
|
||||
isCalledBySartharion = false;
|
||||
instance->DoAction(ACTION_CLEAR_PORTAL);
|
||||
}
|
||||
@@ -788,7 +786,7 @@ struct boss_sartharion_dragonAI : public BossAI
|
||||
// Transfer summons to Sartharion
|
||||
if (isCalledBySartharion && instance->GetBossState(DATA_SARTHARION) == IN_PROGRESS)
|
||||
{
|
||||
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION)))
|
||||
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION)))
|
||||
{
|
||||
sartharion->AI()->JustSummoned(summon);
|
||||
}
|
||||
@@ -872,7 +870,7 @@ struct boss_sartharion_dragonAI : public BossAI
|
||||
Talk(SAY_SHADRON_DEATH);
|
||||
if (isCalledBySartharion)
|
||||
{
|
||||
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION)))
|
||||
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION)))
|
||||
{
|
||||
sartharion->RemoveAura(SPELL_GIFT_OF_TWILIGHT_FIRE);
|
||||
}
|
||||
@@ -902,7 +900,7 @@ struct boss_sartharion_dragonAI : public BossAI
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION)))
|
||||
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION)))
|
||||
{
|
||||
sartharion->AI()->DoAction(ACTION_DRAKE_DIED);
|
||||
}
|
||||
@@ -989,12 +987,12 @@ protected:
|
||||
gobj->Delete();
|
||||
}
|
||||
|
||||
portalGUID = 0;
|
||||
portalGUID.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
EventMap extraEvents;
|
||||
uint64 portalGUID;
|
||||
ObjectGuid portalGUID;
|
||||
bool isCalledBySartharion;
|
||||
};
|
||||
|
||||
@@ -1115,7 +1113,7 @@ public:
|
||||
summons.Summon(egg);
|
||||
if (isCalledBySartharion && instance->GetBossState(DATA_SARTHARION) == IN_PROGRESS)
|
||||
{
|
||||
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION)))
|
||||
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION)))
|
||||
{
|
||||
sartharion->AI()->JustSummoned(egg);
|
||||
}
|
||||
@@ -1131,7 +1129,7 @@ public:
|
||||
{
|
||||
summons.RemoveNotExisting();
|
||||
summons.DespawnEntry(NPC_TWILIGHT_WHELP);
|
||||
for (uint64 const summonGuid : summons)
|
||||
for (ObjectGuid const summonGuid : summons)
|
||||
{
|
||||
Creature const* summon = ObjectAccessor::GetCreature(*me, summonGuid);
|
||||
if (!summon || !summon->IsAlive() || summon->GetEntry() != NPC_TWILIGHT_EGG)
|
||||
@@ -1144,7 +1142,7 @@ public:
|
||||
summons2.Summon(whelp);
|
||||
if (isCalledBySartharion && instance->GetBossState(DATA_SARTHARION) == IN_PROGRESS)
|
||||
{
|
||||
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION)))
|
||||
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION)))
|
||||
{
|
||||
sartharion->AI()->JustSummoned(whelp);
|
||||
}
|
||||
@@ -1219,7 +1217,7 @@ public:
|
||||
instance->DoAction(ACTION_CLEAR_PORTAL);
|
||||
}
|
||||
|
||||
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION)))
|
||||
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION)))
|
||||
{
|
||||
sartharion->RemoveAurasDueToSpell(SPELL_GIFT_OF_TWILIGHT_FIRE);
|
||||
}
|
||||
@@ -1534,9 +1532,9 @@ public:
|
||||
|
||||
if (InstanceScript* pInstance = GetCaster()->GetInstanceScript())
|
||||
{
|
||||
if (Creature* sarth = ObjectAccessor::GetCreature(*GetHitUnit(), pInstance->GetData64(DATA_SARTHARION)))
|
||||
if (Creature* sarth = ObjectAccessor::GetCreature(*GetHitUnit(), pInstance->GetGuidData(DATA_SARTHARION)))
|
||||
{
|
||||
sarth->AI()->SetData(DATA_VOLCANO_BLOWS, GetHitUnit()->GetGUIDLow());
|
||||
sarth->AI()->SetData(DATA_VOLCANO_BLOWS, GetHitUnit()->GetGUID().GetCounter());
|
||||
sarth->CastSpell(GetHitUnit(), SPELL_LAVA_STRIKE_SUMMON, true);
|
||||
spawned = true;
|
||||
}
|
||||
|
||||
@@ -20,13 +20,7 @@ public:
|
||||
|
||||
struct instance_obsidian_sanctum_InstanceMapScript : public InstanceScript
|
||||
{
|
||||
instance_obsidian_sanctum_InstanceMapScript(Map* pMap) : InstanceScript(pMap),
|
||||
m_uiSartharionGUID(0),
|
||||
m_uiTenebronGUID(0),
|
||||
m_uiShadronGUID(0),
|
||||
m_uiVesperonGUID(0),
|
||||
m_uiPortalGUID(0),
|
||||
portalCount(0)
|
||||
instance_obsidian_sanctum_InstanceMapScript(Map* pMap) : InstanceScript(pMap), portalCount(0)
|
||||
{
|
||||
SetBossNumber(MAX_ENCOUNTERS);
|
||||
}
|
||||
@@ -61,7 +55,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 uiData) const override
|
||||
ObjectGuid GetGuidData(uint32 uiData) const override
|
||||
{
|
||||
switch(uiData)
|
||||
{
|
||||
@@ -74,7 +68,8 @@ public:
|
||||
case DATA_VESPERON:
|
||||
return m_uiVesperonGUID;
|
||||
}
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* source, Unit const* /*target*/, uint32 /*miscvalue1*/) override
|
||||
@@ -87,7 +82,7 @@ public:
|
||||
case 7327:
|
||||
{
|
||||
Creature const* sartharion = instance->GetCreature(m_uiSartharionGUID);
|
||||
return sartharion && !sartharion->AI()->GetData(source->GetGUIDLow());
|
||||
return sartharion && !sartharion->AI()->GetData(source->GetGUID().GetCounter());
|
||||
}
|
||||
// Less Is More (10 player) (624)
|
||||
case 7189:
|
||||
@@ -182,7 +177,7 @@ public:
|
||||
}
|
||||
|
||||
DoRemoveAurasDueToSpellOnPlayers(SPELL_TWILIGHT_SHIFT);
|
||||
m_uiPortalGUID = 0;
|
||||
m_uiPortalGUID.Clear();
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -232,11 +227,11 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 m_uiSartharionGUID;
|
||||
uint64 m_uiTenebronGUID;
|
||||
uint64 m_uiShadronGUID;
|
||||
uint64 m_uiVesperonGUID;
|
||||
uint64 m_uiPortalGUID;
|
||||
ObjectGuid m_uiSartharionGUID;
|
||||
ObjectGuid m_uiTenebronGUID;
|
||||
ObjectGuid m_uiShadronGUID;
|
||||
ObjectGuid m_uiVesperonGUID;
|
||||
ObjectGuid m_uiPortalGUID;
|
||||
uint8 portalCount;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -168,7 +168,7 @@ public:
|
||||
Talk(SAY_DEATH);
|
||||
BossAI::JustDied(killer);
|
||||
|
||||
if (Creature* xerestrasza = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_XERESTRASZA)))
|
||||
if (Creature* xerestrasza = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_XERESTRASZA)))
|
||||
xerestrasza->AI()->DoAction(ACTION_BALTHARUS_DEATH);
|
||||
}
|
||||
|
||||
@@ -454,10 +454,10 @@ public:
|
||||
{
|
||||
if (InstanceScript* instance = player->GetInstanceScript())
|
||||
{
|
||||
if (Creature* xerestrasza = ObjectAccessor::GetCreature(*player, instance->GetData64(NPC_XERESTRASZA)))
|
||||
if (Creature* xerestrasza = ObjectAccessor::GetCreature(*player, instance->GetGuidData(NPC_XERESTRASZA)))
|
||||
xerestrasza->AI()->DoAction(ACTION_INTRO_BALTHARUS);
|
||||
|
||||
if (Creature* baltharus = ObjectAccessor::GetCreature(*player, instance->GetData64(NPC_BALTHARUS_THE_WARBORN)))
|
||||
if (Creature* baltharus = ObjectAccessor::GetCreature(*player, instance->GetGuidData(NPC_BALTHARUS_THE_WARBORN)))
|
||||
baltharus->AI()->DoAction(ACTION_INTRO_BALTHARUS);
|
||||
}
|
||||
|
||||
|
||||
@@ -140,16 +140,16 @@ public:
|
||||
{
|
||||
case EVENT_SUMMON_ADDS1:
|
||||
Talk(SAY_ADDS);
|
||||
if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_1)))
|
||||
if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_1)))
|
||||
stalker1->CastSpell(stalker1, SPELL_SUMMON_FLAMECALLER, false);
|
||||
if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_2)))
|
||||
if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_2)))
|
||||
stalker2->CastSpell(stalker2, SPELL_SUMMON_FLAMECALLER, false);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ADDS1, 40000);
|
||||
break;
|
||||
case EVENT_SUMMON_ADDS2:
|
||||
if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_1)))
|
||||
if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_1)))
|
||||
stalker1->CastSpell(stalker1, SPELL_SUMMON_FLAMECALLER, false);
|
||||
if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_2)))
|
||||
if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_2)))
|
||||
stalker2->CastSpell(stalker2, SPELL_SUMMON_FLAMECALLER, false);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ADDS2, 40000);
|
||||
break;
|
||||
@@ -213,7 +213,7 @@ public:
|
||||
void IsSummonedBy(Unit* /*summoner*/) override
|
||||
{
|
||||
// Let Zarithrian count as summoner. _instance cant be null since we got GetRubySanctumAI
|
||||
if (Creature* zarithrian = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_GENERAL_ZARITHRIAN)))
|
||||
if (Creature* zarithrian = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_GENERAL_ZARITHRIAN)))
|
||||
zarithrian->AI()->JustSummoned(me);
|
||||
}
|
||||
|
||||
|
||||
@@ -275,7 +275,7 @@ public:
|
||||
void JustReachedHome() override
|
||||
{
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_HALION_CONTROLLER)))
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_HALION_CONTROLLER)))
|
||||
controller->AI()->DoAction(ACTION_RESET_ENCOUNTER);
|
||||
BossAI::JustReachedHome();
|
||||
}
|
||||
@@ -312,11 +312,11 @@ public:
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
me->CastSpell(me, SPELL_CLEAR_DEBUFFS, false);
|
||||
|
||||
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_TWILIGHT_HALION)))
|
||||
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_TWILIGHT_HALION)))
|
||||
if (twilightHalion->IsAlive())
|
||||
Unit::Kill(twilightHalion, twilightHalion);
|
||||
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_HALION_CONTROLLER)))
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_HALION_CONTROLLER)))
|
||||
if (controller->IsAlive())
|
||||
Unit::Kill(controller, controller);
|
||||
}
|
||||
@@ -329,7 +329,7 @@ public:
|
||||
if (!attacker || !me->InSamePhase(attacker))
|
||||
return;
|
||||
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_HALION_CONTROLLER)))
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_HALION_CONTROLLER)))
|
||||
controller->AI()->SetData(DATA_MATERIAL_DAMAGE_TAKEN, damage);
|
||||
}
|
||||
|
||||
@@ -344,7 +344,7 @@ public:
|
||||
break;
|
||||
case EVENT_TRIGGER_BERSERK:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_TWILIGHT_HALION)))
|
||||
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_TWILIGHT_HALION)))
|
||||
twilightHalion->CastSpell(twilightHalion, SPELL_BERSERK, true);
|
||||
break;
|
||||
}
|
||||
@@ -375,8 +375,8 @@ public:
|
||||
events.ScheduleEvent(EVENT_BREATH, urand(10000, 12000));
|
||||
break;
|
||||
case EVENT_ACTIVATE_FIREWALL:
|
||||
instance->HandleGameObject(instance->GetData64(GO_FLAME_RING), false, nullptr);
|
||||
instance->HandleGameObject(instance->GetData64(GO_TWILIGHT_FLAME_RING), false, nullptr);
|
||||
instance->HandleGameObject(instance->GetGuidData(GO_FLAME_RING), false, nullptr);
|
||||
instance->HandleGameObject(instance->GetGuidData(GO_TWILIGHT_FLAME_RING), false, nullptr);
|
||||
break;
|
||||
case EVENT_METEOR_STRIKE:
|
||||
_livingEmberCount = summons.GetEntryCount(NPC_LIVING_EMBER);
|
||||
@@ -424,7 +424,7 @@ public:
|
||||
{
|
||||
boss_twilight_halionAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript())
|
||||
{
|
||||
Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_HALION));
|
||||
Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION));
|
||||
if (!halion)
|
||||
return;
|
||||
|
||||
@@ -474,7 +474,7 @@ public:
|
||||
|
||||
void JustDied(Unit* killer) override
|
||||
{
|
||||
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_HALION)))
|
||||
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION)))
|
||||
{
|
||||
// Ensure looting
|
||||
if (me->IsDamageEnoughForLootingAndReward())
|
||||
@@ -484,7 +484,7 @@ public:
|
||||
Unit::Kill(killer, halion);
|
||||
}
|
||||
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_HALION_CONTROLLER)))
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION_CONTROLLER)))
|
||||
if (controller->IsAlive())
|
||||
Unit::Kill(controller, controller);
|
||||
|
||||
@@ -497,7 +497,7 @@ public:
|
||||
if (!attacker || !me->InSamePhase(attacker))
|
||||
return;
|
||||
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_HALION_CONTROLLER)))
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION_CONTROLLER)))
|
||||
controller->AI()->SetData(DATA_TWILIGHT_DAMAGE_TAKEN, damage);
|
||||
}
|
||||
|
||||
@@ -549,7 +549,7 @@ public:
|
||||
_events.ScheduleEvent(EVENT_SHADOW_PULSARS_SHOOT, 5000);
|
||||
break;
|
||||
case EVENT_SHADOW_PULSARS_SHOOT:
|
||||
if (Creature* orbCarrier = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_ORB_CARRIER)))
|
||||
if (Creature* orbCarrier = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_ORB_CARRIER)))
|
||||
orbCarrier->AI()->DoAction(ACTION_SHOOT);
|
||||
break;
|
||||
}
|
||||
@@ -642,7 +642,7 @@ public:
|
||||
_events.ScheduleEvent(EVENT_INTRO_PROGRESS_4, 500);
|
||||
break;
|
||||
case EVENT_INTRO_PROGRESS_4:
|
||||
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_HALION)))
|
||||
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION)))
|
||||
{
|
||||
halion->SetVisible(true);
|
||||
halion->SetReactState(REACT_AGGRESSIVE);
|
||||
@@ -708,14 +708,14 @@ public:
|
||||
_instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_MATERIAL, _corporeality * 10);
|
||||
_instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TWILIGHT, 100 - _corporeality * 10);
|
||||
|
||||
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_TWILIGHT_HALION)))
|
||||
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_TWILIGHT_HALION)))
|
||||
{
|
||||
twilightHalion->RemoveAurasDueToSpell(_corporealityReference[MAX_CORPOREALITY_STATE - 1 - oldValue]);
|
||||
twilightHalion->CastSpell(twilightHalion, _corporealityReference[MAX_CORPOREALITY_STATE - 1 - _corporeality], true);
|
||||
twilightHalion->AI()->Talk(oldValue < _corporeality ? EMOTE_CORPOREALITY_TOT : EMOTE_CORPOREALITY_TIT);
|
||||
}
|
||||
|
||||
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_HALION)))
|
||||
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION)))
|
||||
{
|
||||
halion->RemoveAurasDueToSpell(_corporealityReference[oldValue]);
|
||||
halion->CastSpell(halion, _corporealityReference[_corporeality], true);
|
||||
@@ -928,7 +928,7 @@ public:
|
||||
|
||||
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
GetTarget()->RemoveAurasDueToSpell(_markSpell, 0, 0, AURA_REMOVE_BY_EXPIRE);
|
||||
GetTarget()->RemoveAurasDueToSpell(_markSpell, ObjectGuid::Empty, 0, AURA_REMOVE_BY_EXPIRE);
|
||||
}
|
||||
|
||||
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
@@ -978,7 +978,7 @@ public:
|
||||
|
||||
if (Unit* dispelledUnit = GetUnitOwner())
|
||||
if (dispelledUnit->HasAura(_removeSpellId))
|
||||
dispelledUnit->RemoveAurasDueToSpell(_removeSpellId, 0, 0, AURA_REMOVE_BY_EXPIRE);
|
||||
dispelledUnit->RemoveAurasDueToSpell(_removeSpellId, ObjectGuid::Empty, 0, AURA_REMOVE_BY_EXPIRE);
|
||||
}
|
||||
|
||||
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
@@ -1188,7 +1188,7 @@ public:
|
||||
if (!target)
|
||||
return;
|
||||
|
||||
target->RemoveAurasDueToSpell(SPELL_FIERY_COMBUSTION, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL);
|
||||
target->RemoveAurasDueToSpell(SPELL_FIERY_COMBUSTION, ObjectGuid::Empty, 0, AURA_REMOVE_BY_ENEMY_SPELL);
|
||||
if (GetTarget()->GetTypeId() != TYPEID_PLAYER)
|
||||
return;
|
||||
GetTarget()->m_Events.AddEvent(new SendEncounterUnit(GetTarget()->ToPlayer()), GetTarget()->m_Events.CalculateTime(500));
|
||||
@@ -1221,7 +1221,7 @@ public:
|
||||
if (!target)
|
||||
return;
|
||||
|
||||
target->RemoveAurasDueToSpell(SPELL_SOUL_CONSUMPTION, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL);
|
||||
target->RemoveAurasDueToSpell(SPELL_SOUL_CONSUMPTION, ObjectGuid::Empty, 0, AURA_REMOVE_BY_ENEMY_SPELL);
|
||||
}
|
||||
|
||||
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*handle*/)
|
||||
@@ -1373,8 +1373,8 @@ public:
|
||||
void HandleDummy(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
InstanceScript* instance = GetCaster()->GetInstanceScript();
|
||||
Creature* controller = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(NPC_HALION_CONTROLLER));
|
||||
Creature* halion = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(NPC_HALION));
|
||||
Creature* controller = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(NPC_HALION_CONTROLLER));
|
||||
Creature* halion = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(NPC_HALION));
|
||||
|
||||
if (!controller || !halion)
|
||||
return;
|
||||
@@ -1449,7 +1449,7 @@ public:
|
||||
me->CastSpell(me, SPELL_BLAZING_AURA, true);
|
||||
|
||||
if (InstanceScript* instance = me->GetInstanceScript())
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_HALION_CONTROLLER)))
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_HALION_CONTROLLER)))
|
||||
controller->AI()->JustSummoned(me);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,17 +34,6 @@ public:
|
||||
{
|
||||
SetBossNumber(MAX_ENCOUNTERS);
|
||||
LoadDoorData(doorData);
|
||||
|
||||
BaltharusTheWarbornGUID = 0;
|
||||
XerestraszaGUID = 0;
|
||||
GeneralZarithrianGUID = 0;
|
||||
memset(ZarithrianSpawnStalkerGUID, 0, 2 * sizeof(uint64));
|
||||
|
||||
HalionGUID = 0;
|
||||
TwilightHalionGUID = 0;
|
||||
OrbCarrierGUID = 0;
|
||||
HalionControllerGUID = 0;
|
||||
FlameRingGUID = 0;
|
||||
}
|
||||
|
||||
void OnPlayerEnter(Player* /*player*/) override
|
||||
@@ -138,7 +127,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 type) const override
|
||||
ObjectGuid GetGuidData(uint32 type) const override
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
@@ -164,7 +153,7 @@ public:
|
||||
return FlameRingGUID;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
bool SetBossState(uint32 type, EncounterState state) override
|
||||
@@ -255,16 +244,16 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 BaltharusTheWarbornGUID;
|
||||
uint64 XerestraszaGUID;
|
||||
uint64 GeneralZarithrianGUID;
|
||||
uint64 ZarithrianSpawnStalkerGUID[2];
|
||||
ObjectGuid BaltharusTheWarbornGUID;
|
||||
ObjectGuid XerestraszaGUID;
|
||||
ObjectGuid GeneralZarithrianGUID;
|
||||
ObjectGuid ZarithrianSpawnStalkerGUID[2];
|
||||
|
||||
uint64 HalionGUID;
|
||||
uint64 TwilightHalionGUID;
|
||||
uint64 HalionControllerGUID;
|
||||
uint64 OrbCarrierGUID;
|
||||
uint64 FlameRingGUID;
|
||||
ObjectGuid HalionGUID;
|
||||
ObjectGuid TwilightHalionGUID;
|
||||
ObjectGuid HalionControllerGUID;
|
||||
ObjectGuid OrbCarrierGUID;
|
||||
ObjectGuid FlameRingGUID;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
Reference in New Issue
Block a user