示例#1
0
    void UpdateAI(const uint32 uiDiff) override
    {
        if (m_bIsComplete || !m_creature->isAlive())
            return;

        if (m_uiSpawnButtressTimer <= uiDiff)
        {
            if (m_uiButtressCount >= MAX_BUTTRESS)
            {
                m_creature->CastSpell(m_creature, SPELL_SUCKER_DESPAWN_MOB, TRIGGERED_NONE);

                if (m_creature->isInCombat())
                {
                    m_creature->DeleteThreatList();
                    m_creature->CombatStop();
                }

                m_bIsComplete = true;
                return;
            }

            m_uiSpawnButtressTimer = 45000;
            DoSpawnButtress();
        }
        else
            m_uiSpawnButtressTimer -= uiDiff;

        if (m_uiSpawnDemonTimer <= uiDiff)
        {
            DoSpawnDemon();
            m_uiSpawnDemonTimer = 15000;
        }
        else
            m_uiSpawnDemonTimer -= uiDiff;
    }
示例#2
0
        void UpdateAI(uint32 const uiDiff)
        {
            if (m_bIsComplete || !me->IsAlive())
                return;

            if (m_uiSpawnButtressTimer <= uiDiff)
            {
                if (m_uiButtressCount >= MAX_BUTTRESS)
                {
                    me->CastSpell(me, SPELL_SUCKER_DESPAWN_MOB, false);

                    if (me->IsInCombat())
                    {
                        me->RemoveAllAuras();
                        me->DeleteThreatList();
                        me->CombatStop(true);
                    }

                    m_bIsComplete = true;
                    return;
                }

                m_uiSpawnButtressTimer = 45000;
                DoSpawnButtress();
            }
            else
                m_uiSpawnButtressTimer -= uiDiff;

            if (m_uiSpawnDemonTimer <= uiDiff)
            {
                DoSpawnDemon();
                m_uiSpawnDemonTimer = 15000;
            }
            else
                m_uiSpawnDemonTimer -= uiDiff;
        }