Esempio n. 1
0
    void UpdateAI(const uint32 diff)
    {
        if (CanDoQuest)
        {
            if (!UnkorUnfriendly_Timer)
            {
                //DoCastSpellIfCan(m_creature,SPELL_QUID9889);        //not using spell for now
                DoNice();
            }
            else
            {
                if (UnkorUnfriendly_Timer <= diff)
                {
                    EnterEvadeMode();
                }else UnkorUnfriendly_Timer -= diff;
            }
        }

        if (!m_creature->SelectHostileTarget() || !m_creature->getVictim())
            return;

        if (Pulverize_Timer < diff)
        {
            DoCastSpellIfCan(m_creature,SPELL_PULVERIZE);
            Pulverize_Timer = 9000;
        }else Pulverize_Timer -= diff;

        DoMeleeAttackIfReady();
    }
Esempio n. 2
0
        void UpdateAI(const uint32 diff)
        {
            if (CanDoQuest)
            {
                if (!UnkorUnfriendly_Timer)
                {
                    //DoCast(me, SPELL_QUID9889);        //not using spell for now
                    DoNice();
                }
                else
                {
                    if (UnkorUnfriendly_Timer <= diff)
                    {
                        EnterEvadeMode();
                        return;
                    } else UnkorUnfriendly_Timer -= diff;
                }
            }

            if (!UpdateVictim())
                return;

            if (Pulverize_Timer <= diff)
            {
                DoCast(me, SPELL_PULVERIZE);
                Pulverize_Timer = 9000;
            } else Pulverize_Timer -= diff;

            DoMeleeAttackIfReady();
        }
Esempio n. 3
0
    void UpdateAI(const uint32 uiDiff)
    {
        if (m_bCanDoQuest)
        {
            if (!m_uiUnfriendlyTimer)
            {
                //DoCastSpellIfCan(m_creature,SPELL_QUID9889);        //not using spell for now
                DoNice();
            }
            else
            {
                if (m_uiUnfriendlyTimer <= uiDiff)
                    EnterEvadeMode();
                else
                    m_uiUnfriendlyTimer -= uiDiff;
            }
        }

        if (!m_creature->SelectHostileTarget() || !m_creature->getVictim())
            return;

        if (m_uiPulverizeTimer < uiDiff)
        {
            DoCastSpellIfCan(m_creature, SPELL_PULVERIZE);
            m_uiPulverizeTimer = 9000;
        }
        else
            m_uiPulverizeTimer -= uiDiff;

        DoMeleeAttackIfReady();
    }
Esempio n. 4
0
    void UpdateAI(const uint32 uiDiff) override
    {
        // Reset npc on timer
        if (m_uiUnfriendlyTimer)
        {
            if (m_uiUnfriendlyTimer <= uiDiff)
                EnterEvadeMode();
            else
                m_uiUnfriendlyTimer -= uiDiff;
        }

        if (!m_creature->SelectHostileTarget() || !m_creature->getVictim())
            return;

        // Do quest kill credit at 30%
        if (!m_bCanDoQuest && m_creature->GetHealthPercent() < 30.0f)
        {
            DoCastSpellIfCan(m_creature, SPELL_QUID9889, CAST_TRIGGERED);
            m_uiFriendlyTimer = 1000;
            m_bCanDoQuest = true;
        }

        // Set faction right after the spell is casted, in order to avoid any issues
        if (m_uiFriendlyTimer)
        {
            if (m_uiFriendlyTimer <= uiDiff)
            {
                DoNice();
                m_uiFriendlyTimer = 0;
            }
            else
                m_uiFriendlyTimer -= uiDiff;
        }

        if (m_uiPulverizeTimer < uiDiff)
        {
            DoCastSpellIfCan(m_creature, SPELL_PULVERIZE);
            m_uiPulverizeTimer = 9000;
        }
        else
            m_uiPulverizeTimer -= uiDiff;

        DoMeleeAttackIfReady();
    }