Esempio n. 1
0
    void Reset() override
    {
        m_bIsPlatformPhase       = true;
        m_uiPlatformPhase        = 0;
        m_uiExplosionTimer       = 0;
        m_uiExplosionExpireTimer = 0;
        m_uiTeleportTimer        = 20000;
        m_uiFrostBombTimer       = 5000;
        m_uiTimeBombTimer        = urand(10000, 15000);

        ResetPlatformVariables();

        std::random_shuffle(m_vuiTrashPacksIds.begin(), m_vuiTrashPacksIds.end());
    }
Esempio n. 2
0
    void EnterEvadeMode() override
    {
        // Don't evade while casting explosion
        if (m_uiExplosionExpireTimer)
            return;

        if (m_bIsPlatformPhase)
        {
            m_creature->RemoveAllAurasOnEvade();
            m_creature->DeleteThreatList();
            m_creature->CombatStop(true);

            m_creature->SetLootRecipient(NULL);

            ResetPlatformVariables();
        }
        else
            ScriptedAI::EnterEvadeMode();
    }
Esempio n. 3
0
    void EnterEvadeMode() override
    {
        // Don't evade while casting explosion
        if (m_uiExplosionExpireTimer)
            return;

        if (m_bIsPlatformPhase)
        {
            m_creature->RemoveAllAurasOnEvade();
            m_creature->DeleteThreatList();
            m_creature->CombatStop(true);

            m_creature->SetLootRecipient(NULL);

            ResetPlatformVariables();
        }
        else
        {
            // Teleport to home position, in order to override the movemaps
            m_creature->NearTeleportTo(aOculusBossSpawnLocs[0][0], aOculusBossSpawnLocs[0][1], aOculusBossSpawnLocs[0][2], aOculusBossSpawnLocs[0][3]);

            ScriptedAI::EnterEvadeMode();
        }
    }