Esempio n. 1
0
        void CrystalHandlerDied()
        {
            for (uint8 i = 0; i < 4; i++)
            {
                ObjectGuid guid = instance->GetGuidData(DATA_NOVOS_CRYSTAL_1 + i);
                if (!guid.IsEmpty())
                {
                    if (GameObject* crystal = ObjectAccessor::GetGameObject(*me, guid))
                    {
                        if (crystal->GetGoState() == GO_STATE_ACTIVE)
                        {
                            SetCrystalStatus(crystal, false);
                            break;
                        }
                    }
                }
            }

            ObjectGuid guid = instance->GetGuidData(DATA_NOVOS_SUMMONER_4);
            if (++_crystalHandlerCount >= 4)
            {
                Talk(SAY_ARCANE_FIELD);
                SetSummonerStatus(false);
                SetBubbled(false);
                events.ScheduleEvent(EVENT_ATTACK, 3000);
                if (IsHeroic())
                    events.ScheduleEvent(EVENT_SUMMON_MINIONS, 15000);
            }
            else if (!guid.IsEmpty())
                if (Creature* crystalChannelTarget = ObjectAccessor::GetCreature(*me, guid))
                    crystalChannelTarget->AI()->SetData(SPELL_SUMMON_CRYSTAL_HANDLER, 15000);
        }
Esempio n. 2
0
        void Reset() override
        {
            _Reset();

            Initialize();
            SetCrystalsStatus(false);
            SetSummonerStatus(false);
            SetBubbled(false);
        }
Esempio n. 3
0
        void EnterCombat(Unit* /* victim */) override
        {
            _EnterCombat();
            Talk(SAY_AGGRO);

            SetCrystalsStatus(true);
            SetSummonerStatus(true);
            SetBubbled(true);
        }
Esempio n. 4
0
        void EnterCombat(Unit* /* victim */)
        {
            me->setActive(true);
            DoZoneInCombat();
            instance->SetData(DATA_NOVOS_EVENT, IN_PROGRESS);

            SetCrystalsStatus(true);
            SetSummonerStatus(true);
            SetBubbled(true);
        }
Esempio n. 5
0
        void Reset() override
        {
            _Reset();

            _ohNovos = true;
            _crystalHandlerCount = 0;
            SetCrystalsStatus(false);
            SetSummonerStatus(false);
            SetBubbled(false);
        }
Esempio n. 6
0
        void Reset()
        {
            events.Reset();
            summons.DespawnAll();
            instance->SetData(DATA_NOVOS_EVENT, NOT_STARTED);

            _ohNovos = true;
            _crystalHandlerCount = 0;
            SetCrystalsStatus(false);
            SetSummonerStatus(false);
            SetBubbled(false);
        }
Esempio n. 7
0
        void CrystalHandlerDied()
        {
            for (uint8 i = 0; i < 4; i++)
                if (uint64 guid = instance->GetData64(DATA_NOVOS_CRYSTAL_1 + i))
                    if (GameObject* crystal = instance->instance->GetGameObject(guid))
                        if (crystal->GetGoState() == GO_STATE_ACTIVE)
                        {
                            SetCrystalStatus(crystal, false);
                            break;
                        }

            if (++_crystalHandlerCount >= 4)
            {
                SetSummonerStatus(false);
                SetBubbled(false);
                events.ScheduleEvent(EVENT_ATTACK, 3000);
                if (IsHeroic())
                    events.ScheduleEvent(EVENT_SUMMON_MINIONS, 15000);
            }
            else if (uint64 guid = instance->GetData64(DATA_NOVOS_SUMMONER_4))
                if (Creature* crystalChannelTarget = instance->instance->GetCreature(guid))
                    crystalChannelTarget->AI()->SetData(SPELL_SUMMON_CRYSTAL_HANDLER, 15000);
        }