예제 #1
0
 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);
     }
 }
예제 #2
0
    void JustReachedHome() override
    {
        if (m_pInstance)
        {
            if (Creature* pColossus = m_pInstance->GetSingleCreatureFromStorage(NPC_COLOSSUS))
                pColossus->AI()->EnterEvadeMode();
        }

        m_creature->ForcedDespawn();
    }
예제 #3
0
    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);
        }
    }
예제 #4
0
    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);
            }
        }
    }
예제 #5
0
    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();
                }
            }
        }
    }