void JustDied(Unit* /*pKiller*/) override { if (m_pInstance) { // kill colossus on death - this will finish the encounter if (Creature* pColossus = m_pInstance->GetSingleCreatureFromStorage(NPC_COLOSSUS)) pColossus->DealDamage(pColossus, pColossus->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); } }
void JustReachedHome() override { if (m_pInstance) { if (Creature* pColossus = m_pInstance->GetSingleCreatureFromStorage(NPC_COLOSSUS)) pColossus->AI()->EnterEvadeMode(); } m_creature->ForcedDespawn(); }
void JustSummoned(Creature* pSummoned) { if (!m_pInstance) return; if (Creature* pSladran = m_pInstance->GetSingleCreatureFromStorage(NPC_SLADRAN)) { float fPosX, fPosY, fPosZ; pSladran->GetPosition(fPosX, fPosY, fPosZ); pSummoned->GetMotionMaster()->MovePoint(0, fPosX, fPosY, fPosZ); } }
void EnterEvadeMode() override { if (!m_bIsPartOfColossus) ScriptedAI::EnterEvadeMode(); // Force the Mojo to move to the Colossus position else { if (m_pInstance) { float fX, fY, fZ; m_creature->GetPosition(fX, fY, fZ); if (Creature* pColossus = m_pInstance->GetSingleCreatureFromStorage(NPC_COLOSSUS)) pColossus->GetPosition(fX, fY, fZ); m_creature->SetWalk(false); m_creature->GetMotionMaster()->MovePoint(1, fX, fY, fZ); } } }
void MovementInform(uint32 uiType, uint32 uiPointId) override { if (uiType != POINT_MOTION_TYPE) return; if (uiPointId) { m_creature->ForcedDespawn(1000); if (m_pInstance) { // Prepare to set the Colossus in combat if (Creature* pColossus = m_pInstance->GetSingleCreatureFromStorage(NPC_COLOSSUS)) { if (boss_drakkari_colossusAI* pBossAI = dynamic_cast<boss_drakkari_colossusAI*>(pColossus->AI())) pBossAI->DoPrepareColossus(); } } } }