Ejemplo n.º 1
0
void instance_violet_hold::OnPlayerEnter(Player* /*pPlayer*/)
{
    UpdateWorldState(m_auiEncounter[TYPE_MAIN] == IN_PROGRESS ? true : false);

    if (m_vRandomBosses.empty())
    {
        SetRandomBosses();
        ResetAll();
    }
}
Ejemplo n.º 2
0
void instance_violet_hold::SetData(uint32 uiType, uint32 uiData)
{
    debug_log("SD2: instance_violet_hold: SetData got type % u, data %u.", uiType, uiData);

    switch(uiType)
    {
        case TYPE_MAIN:
        {
            if (uiData == m_auiEncounter[0])
                return;

            switch(uiData)
            {
                case NOT_STARTED:
                    ResetAll();
                    break;
                case IN_PROGRESS:
                    DoUseDoorOrButton(m_uiDoorSealGUID);
                    SetRandomBosses();
                    UpdateWorldState();
                    m_uiPortalId = urand(0, 2);
                    m_uiPortalTimer = 15000;
                    break;
                case FAIL:
                    if (Creature* pSinclari = instance->GetCreature(m_uiSinclariGUID))
                        pSinclari->Respawn();

                    break;
                case DONE:
                    break;
                case SPECIAL:
                    break;
            }
            m_auiEncounter[0] = uiData;
            break;
        }
        case TYPE_SEAL:
            m_auiEncounter[1] = uiData;
            break;
        case TYPE_PORTAL:
        {
            switch(uiData)
            {
                case SPECIAL:                               // timer to next
                    m_uiPortalTimer = 90000;
                    break;
                case DONE:                                  // portal done, set timer to 5 secs
                    m_uiPortalTimer = 5000;
                    break;
            }
            m_auiEncounter[2] = uiData;
            break;
        }
    }
}