void EnterCombat(Unit * /*who*/)
        {
            DoScriptText(RAND(SAY_AGGRO1,SAY_AGGRO2,SAY_AGGRO3), me);
            summonPortals();

            if (pInstance)
                pInstance->SetData(DATA_GRANDMASTERVORPILEVENT, IN_PROGRESS);
        }
        void EnterCombat(Unit* /*who*/)
        {
            Talk(SAY_AGGRO);
            summonPortals();

            if (instance)
                instance->SetData(DATA_GRANDMASTERVORPILEVENT, IN_PROGRESS);
        }
    void EnterCombat(Unit *who)
    {
        switch (rand()%3)
        {
            case 0: DoScriptText(SAY_AGGRO1, me); break;
            case 1: DoScriptText(SAY_AGGRO2, me); break;
            case 2: DoScriptText(SAY_AGGRO3, me); break;
        }
        summonPortals();

        if (instance)
            instance->SetData(DATA_GRANDMASTERVORPILEVENT, IN_PROGRESS);
    }
        void EnterCombat(Unit* /*who*/)
        {
            Talk(SAY_AGGRO);
            summonPortals();

            events.ScheduleEvent(EVENT_SPELL_SHADOWBOLT, urand(7000, 14000));
            events.ScheduleEvent(EVENT_SPELL_DRAWSHADOWS, 45000);
            events.ScheduleEvent(EVENT_SUMMON_TRAVELER, 5000);
            if (IsHeroic())
                events.ScheduleEvent(EVENT_SPELL_BANISH, 17000);

            if (instance)
                instance->SetData(DATA_GRANDMASTERVORPILEVENT, IN_PROGRESS);
        }
    void UpdateAI(const uint32 diff)
    {

        if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
            return;
        
        if (!sumportals)
        if (sumportals_Timer < diff)
        {
            DoScriptText(SAY_HELP, m_creature);
            summonPortals();
            sumportals_Timer = 1000000;
                    
        }else sumportals_Timer -= diff;

        if (ShadowBoltVolley_Timer < diff)
        {
            DoCast(m_creature,SPELL_SHADOWBOLT_VOLLEY);
            ShadowBoltVolley_Timer = 15000;
        }else ShadowBoltVolley_Timer -= diff;

        if ( DrawnShadows_Timer < diff)
        {
            DoTeleportAll(VorpilPosition[0][0],VorpilPosition[0][1],VorpilPosition[0][2],0);
            m_creature->Relocate(VorpilPosition[0][0],VorpilPosition[0][1],VorpilPosition[0][2],0);
            DoCast(m_creature,SPELL_DRAWN_SHADOWS,true);

            if(!HeroicMode) DoCast(m_creature,SPELL_RAIN_OF_FIRE);
            else DoCast(m_creature,H_SPELL_RAIN_OF_FIRE);

            ShadowBoltVolley_Timer = 6000;
            DrawnShadows_Timer = 45000;    
        }else DrawnShadows_Timer -= diff;

        if ( summonTraveler_Timer < diff)
        {
            spawnVoidTraveler();
            summonTraveler_Timer = 10000;
        }else summonTraveler_Timer -=diff;

        DoMeleeAttackIfReady();
    }