Ejemplo n.º 1
0
        void Update(uint32 diff)
        {
            if (GetData(DATA_ONYXIA) == IN_PROGRESS)
            {
                if (OnyxiaLiftoffTimer && OnyxiaLiftoffTimer <= diff)
                {
                    OnyxiaLiftoffTimer = 0;
                    if (ManyWhelpsCounter >= 50)
                        _bAchievManyWhelpsHandleIt = true;
                } else OnyxiaLiftoffTimer -= diff;
            }

            if (!FloorEruptionGUIDQueue.empty())
            {
                if (EruptTimer <= diff)
                {
                    uint32 treeHeight = 0;
                    do
                    {
                        treeHeight = (*FloorEruptionGUID[1].find(FloorEruptionGUIDQueue.front())).second;
                        FloorEruption(FloorEruptionGUIDQueue.front());
                        FloorEruptionGUIDQueue.pop();
                    } while (!FloorEruptionGUIDQueue.empty() && (*FloorEruptionGUID[1].find(FloorEruptionGUIDQueue.front())).second == treeHeight);
                    EruptTimer = 1000;
                }
                else
                    EruptTimer -= diff;
            }
        }
Ejemplo n.º 2
0
    void Update(uint32 uiDiff)
    {
        if(GetData(TYPE_ONYXIA) == IN_PROGRESS)
        {
            if(uiOnyxiaKillTimer > uiDiff)
                uiOnyxiaKillTimer -= uiDiff;
            else 
                uiOnyxiaKillTimer = 0;
            if(uiOnyxiaLiftoffTimer != 0 && uiOnyxiaLiftoffTimer <= uiDiff)
            {
                uiOnyxiaLiftoffTimer = 0;
                if (uiManyWhelpsCounter >= 50)
                    bAchievManyWhelpsHandleIt = true;
            } else uiOnyxiaLiftoffTimer -= uiDiff;
        }

        if (!FloorEruptionGUIDQueue.empty()) 
        {
            if (m_uiEruptTimer <= uiDiff)
            {
                uint32 treeHeight = 0;
                do 
                {
                    treeHeight = (*FloorEruptionGUID[1].find(FloorEruptionGUIDQueue.front())).second;
                    FloorEruption(FloorEruptionGUIDQueue.front());
                    FloorEruptionGUIDQueue.pop();
                } while (!FloorEruptionGUIDQueue.empty() && (*FloorEruptionGUID[1].find(FloorEruptionGUIDQueue.front())).second == treeHeight);
                m_uiEruptTimer = 1000;
            }
            else
                m_uiEruptTimer -= uiDiff;
        }
    }
        void Update(uint32 diff) override
        {
            if (GetBossState(DATA_ONYXIA) == IN_PROGRESS)
            {
                if (onyxiaLiftoffTimer && onyxiaLiftoffTimer <= diff)
                {
                    onyxiaLiftoffTimer = 0;
                    if (manyWhelpsCounter >= 50)
                        achievManyWhelpsHandleIt = true;
                } else onyxiaLiftoffTimer -= diff;
            }

            if (!FloorEruptionGUIDQueue.empty())
            {
                if (eruptTimer <= diff)
                {
                    ObjectGuid frontGuid = FloorEruptionGUIDQueue.front();
                    std::map<ObjectGuid, uint32>::iterator itr = FloorEruptionGUID[1].find(frontGuid);
                    if (itr != FloorEruptionGUID[1].end())
                    {
                        uint32 treeHeight = itr->second;

                        do
                        {
                            FloorEruption(frontGuid);
                            FloorEruptionGUIDQueue.pop();
                            if (FloorEruptionGUIDQueue.empty())
                                break;

                            frontGuid = FloorEruptionGUIDQueue.front();
                            itr = FloorEruptionGUID[1].find(frontGuid);
                        } while (itr != FloorEruptionGUID[1].end() && itr->second == treeHeight);
                    }

                    eruptTimer = 1000;
                }
                else
                    eruptTimer -= diff;
            }
        }
        void Update(uint32 Diff)
        {
            if (GetData(DATA_ONYXIA) == IN_PROGRESS)
            {
                if (OnyxiaLiftoffTimer && OnyxiaLiftoffTimer <= Diff)
                {
                    OnyxiaLiftoffTimer = 0;
                    if (ManyWhelpsCounter >= 50)
                        AchievManyWhelpsHandleIt = true;
                } else OnyxiaLiftoffTimer -= Diff;
            }

            if (!FloorEruptionGUIDQueue.empty())
            {
                if (EruptTimer <= Diff)
                {
                    uint64 frontGuid = FloorEruptionGUIDQueue.front();
                    std::map<uint64, uint32>::iterator itr = FloorEruptionGUID[1].find(frontGuid);
                    if (itr != FloorEruptionGUID[1].end())
                    {
                        uint32 treeHeight = itr->second;

                        do
                        {
                            FloorEruption(frontGuid);
                            FloorEruptionGUIDQueue.pop();
                            if (FloorEruptionGUIDQueue.empty())
                                break;

                            frontGuid = FloorEruptionGUIDQueue.front();
                            itr = FloorEruptionGUID[1].find(frontGuid);
                        } while (itr != FloorEruptionGUID[1].end() && itr->second == treeHeight);
                    }

                    EruptTimer = 1000;
                }
                else
                    EruptTimer -= Diff;
            }
        }