示例#1
0
        void JustDied(Unit* /*pKiller*/)
        {
            DoScriptText(SAY_DEATH, me);

            DespawnSphere();

            if(pInstance)
            {
                if(pInstance->GetData(DATA_WAVE_COUNT) == 6)
                {
                    if(IsHeroic() && pInstance->GetData(DATA_1ST_BOSS_EVENT) == DONE)
                        me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);

                    pInstance->SetData(DATA_1ST_BOSS_EVENT, DONE);
                    pInstance->SetData(DATA_WAVE_COUNT, 7);
                }
                else if(pInstance->GetData(DATA_WAVE_COUNT) == 12)
                {
                    if(IsHeroic() && pInstance->GetData(DATA_2ND_BOSS_EVENT) == DONE)
                        me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);

                    pInstance->SetData(DATA_2ND_BOSS_EVENT, NOT_STARTED);
                    pInstance->SetData(DATA_WAVE_COUNT, 13);
                }
            }
        }
示例#2
0
    void JustDied(Unit* pKiller)
    {
        DoScriptText(SAY_DEATH, m_creature);
        DespawnSphere();

        if (m_pInstance)
            m_pInstance->SetData(TYPE_XEVOZZ, DONE);
    }
示例#3
0
        void Reset() override
        {
            if (instance->GetData(DATA_WAVE_COUNT) == 6)
                instance->SetBossState(DATA_1ST_BOSS_EVENT, NOT_STARTED);
            else if (instance->GetData(DATA_WAVE_COUNT) == 12)
                instance->SetBossState(DATA_2ND_BOSS_EVENT, NOT_STARTED);

            Initialize();
            DespawnSphere();
        }
示例#4
0
    void JustDied(Unit* pKiller)
    {
        DoScriptText(SAY_DEATH, m_creature);
        DespawnSphere();

        if (m_pInstance){
            m_pInstance->SetData(TYPE_XEVOZZ, DONE);
        if(m_pInstance->GetData(TYPE_PORTAL6) == IN_PROGRESS) {m_pInstance->SetData(TYPE_PORTAL6, DONE);}
            else {m_pInstance->SetData(TYPE_PORTAL12, DONE);}
        }
    }
示例#5
0
    void Reset()
    {
        m_uiSummonEtherealSphere_Timer = urand(10000, 12000);
        m_uiArcaneBarrageVolley_Timer = urand(20000, 22000);
        m_uiArcaneBuffet_Timer = m_uiSummonEtherealSphere_Timer + urand(5000, 6000);
        DespawnSphere();
        MovementStarted = false;

        if (m_pInstance)
            m_pInstance->SetData(TYPE_XEVOZZ, NOT_STARTED);
            m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
            m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);

    }
示例#6
0
 void JustDied(Unit* killer)
 {
     DoScriptText(SAY_DEATH, m_creature);
     DespawnSphere();
     
     if (m_instance)
     {
         if (!m_bIsRegularMode)
             m_instance->SetData(DATA_XEVOZZ,SPECIAL);
         else
             m_instance->SetData(DATA_XEVOZZ,DONE);
         if (Creature* pCreature = m_creature->GetMap()->GetCreature(m_instance->GetData64(DOOR_GUID)))
             pCreature->AI()->DoAction(BOSS_DEAD);
     }   
 }
示例#7
0
        void Reset()
        {
            if(pInstance)
            {
                if(pInstance->GetData(DATA_WAVE_COUNT) == 6)
                    pInstance->SetData(DATA_1ST_BOSS_EVENT, NOT_STARTED);
                else if(pInstance->GetData(DATA_WAVE_COUNT) == 12)
                    pInstance->SetData(DATA_2ND_BOSS_EVENT, NOT_STARTED);
            }

            uiSummonEtherealSphere_Timer = urand(10000, 12000);
            uiArcaneBarrageVolley_Timer = urand(20000, 22000);
            uiArcaneBuffet_Timer = uiSummonEtherealSphere_Timer + urand(5000, 6000);
            DespawnSphere();
        }
示例#8
0
    void UpdateAI(const uint32 uiDiff)
    {
        if (m_pInstance->GetData(TYPE_XEVOZZ) == SPECIAL && !MovementStarted)
            StartMovement(0);

        //Return since we have no target
        if (!m_creature->SelectHostileTarget() || !m_creature->getVictim())
            return;

        if (m_uiArcaneBarrageVolley_Timer < uiDiff)
        {
            DoCast(m_creature, m_bIsRegularMode ? SPELL_ARCANE_BARRAGE_VOLLEY : SPELL_ARCANE_BARRAGE_VOLLEY_H);
            m_uiArcaneBarrageVolley_Timer = urand(20000, 22000);
        }
        else m_uiArcaneBarrageVolley_Timer -= uiDiff;

        if (m_uiArcaneBuffet_Timer)
        {
            if (m_uiArcaneBuffet_Timer < uiDiff)
            {
                DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_ARCANE_BUFFET : SPELL_ARCANE_BUFFET_H);
                m_uiArcaneBuffet_Timer = 0;
            }
        }
        else m_uiArcaneBuffet_Timer -= uiDiff;

        if (m_uiSummonEtherealSphere_Timer < uiDiff)
        {
            DoScriptText(SAY_SPAWN, m_creature);
            DoCast(m_creature, SPELL_SUMMON_ETHEREAL_SPHERE_1);
            if (!m_bIsRegularMode) // extra one for heroic
                m_creature->SummonCreature(NPC_ETHEREAL_SPHERE, m_creature->GetPositionX()-5+rand()%10, m_creature->GetPositionY()-5+rand()%10, m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 40000);

            m_uiSummonEtherealSphere_Timer = 30000;
            m_uiArcaneBuffet_Timer = urand(5000, 6000);
            m_uiDespawn_Timer= 30000;
        }
        else m_uiSummonEtherealSphere_Timer -= uiDiff;

        if (m_uiDespawn_Timer < uiDiff)
        {
            DespawnSphere();
        }
        else m_uiDespawn_Timer -= uiDiff;

        DoMeleeAttackIfReady();
    }
示例#9
0
        void JustDied(Unit* /*killer*/) override
        {
            Talk(SAY_DEATH);

            DespawnSphere();

            if (instance->GetData(DATA_WAVE_COUNT) == 6)
            {
                instance->SetBossState(DATA_1ST_BOSS_EVENT, DONE);
                instance->SetData(DATA_WAVE_COUNT, 7);
            }
            else if (instance->GetData(DATA_WAVE_COUNT) == 12)
            {
                instance->SetBossState(DATA_2ND_BOSS_EVENT, NOT_STARTED);
                instance->SetData(DATA_WAVE_COUNT, 13);
            }
        }
示例#10
0
        void JustDied(Unit* /*killer*/)
        {
            DoScriptText(SAY_DEATH, me);

            DespawnSphere();

            if (instance)
            {
                if (instance->GetData(DATA_WAVE_COUNT) == 6)
                {
                    instance->SetData(DATA_1ST_BOSS_EVENT, DONE);
                    instance->SetData(DATA_WAVE_COUNT, 7);
                }
                else if (instance->GetData(DATA_WAVE_COUNT) == 12)
                {
                    instance->SetData(DATA_2ND_BOSS_EVENT, NOT_STARTED);
                    instance->SetData(DATA_WAVE_COUNT, 13);
                }
            }
        }