Пример #1
0
        void JustDied(Unit* /*killer*/)
        {
            if(!IsHeroic())
                Talk(SAY_DEATH);
            else
                Talk(SAY_DEATH_H);
            removeCorruption();
            summons.DespawnAll();

            if (instance)
            {
                instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_CORRUPTION_SICKNESS);
                instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_CORRUPTION_ABSOLUTE);
                instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_CORRUPTION_ABSOLUTE_TRIGGERED);
                instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_CORRUPTION_MALFORMATION);
                instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_CORRUPTION_MALFORMATION_TRIGGERED);
                instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_CORRUPTION_SICKNESS_TRIGGERED);
                instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_RIDE_VEHICLE_HARDCODED);

                instance->SetBossState(DATA_CHOGALL, DONE);
                instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); // Remove
            }

            if(Creature* trigger = me->FindNearestCreature(NPC_CHOGALL_COG_TRIGGER, 200.0f, true))
                trigger->DisappearAndDie();

            if (me->GetMap()->IsHeroic())
                if (GameObject* sinestraDoor = me->FindNearestGameObject(GO_CHOGALL_FLOOR, 200.0f))
                    sinestraDoor->SetGoState(GO_STATE_ACTIVE);

            _JustDied();
        }
Пример #2
0
        void EnterEvadeMode()
        {
            Reset();
            removeCorruption();
            Talk(SAY_EVADE);
            me->GetMotionMaster()->MoveTargetedHome();

            if (Creature* trigger = me->FindNearestCreature(NPC_CHOGALL_COG_TRIGGER, 200.0f, true))
                if(trigger->HasAura(SPELL_CORR_OLD_GOD))
                    trigger->RemoveAurasDueToSpell(SPELL_CORR_OLD_GOD);

            if (instance)
            {
                instance->SetBossState(DATA_CHOGALL, FAIL);
                instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); // Remove
            }

            _EnterEvadeMode();
        }
Пример #3
0
        void JustDied(Unit* /*killer*/)
        {
            if(!IsHeroic())
                Talk(SAY_DEATH);
            else
                Talk(SAY_DEATH_H);
            removeCorruption();
            summons.DespawnAll();

            if (instance)
            {
                instance->SetBossState(DATA_CHOGALL, DONE);
                instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); // Remove
            }

            if(Creature* trigger = me->FindNearestCreature(NPC_CHOGALL_COG_TRIGGER, 200.0f, true))
                trigger->DisappearAndDie();

            if (me->GetMap()->IsHeroic())
                if (GameObject* sinestraDoor = me->FindNearestGameObject(GO_CHOGALL_FLOOR, 200.0f))
                    sinestraDoor->SetGoState(GO_STATE_ACTIVE);

            _JustDied();
        }