예제 #1
0
 void JustDied(Unit* /*killer*/) override
 {
     _JustDied();
     me->PlayDirectSound(SOUND_ID_DEATH);
 }
예제 #2
0
 void JustDied(Unit* /*killer*/) override
 {
     _JustDied();
     Talk(SAY_DEATH);
 }
예제 #3
0
 void JustDied(Unit* /*who*/)
 {
     _JustDied();
     if (Creature* controller = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(DATA_RAZORSCALE_CONTROL) : 0))
         controller->AI()->Reset();
 }
예제 #4
0
 void JustDied(Unit* /*who*/)
 {
     DoScriptText(SAY_DEATH, me);
     _JustDied();
 }
예제 #5
0
 void JustDied(Unit* /*killer*/)
 {
     _JustDied();
     if (instance)
         instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_DONE);
 }
예제 #6
0
 void JustDied(Unit* /*killer*/)
 {
     Cleanup();
     _JustDied();
 }
예제 #7
0
 void JustDied(Unit*)
 {
     _JustDied();
     DoScriptText(SAY_DEATH, me);
 }
 void JustDied(Unit* /*killer*/) override
 {
     Talk(SAY_DIE);
     _JustDied();
 }
예제 #9
0
 void JustDied(Unit* /*killer*/)
 {
     _JustDied();
     DoScriptText(SAY_DEATH, me);
 }
예제 #10
0
 void JustDied(Unit* /*killer*/)
 {
     _JustDied();
     DoScriptText(SAY_DEATH, me);
     instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_AURA_OF_DESPAIR);
 }
 void JustDied(Unit* /*killer*/)
 {
     _JustDied();
     if (Creature* victor = me->FindNearestCreature(NPC_LORD_VICTOR_NEFARIUS, 75.0f, true))
         victor->AI()->SetData(1, 2);
 }
예제 #12
0
 void JustDied(Unit* /*killer*/) override
 {
     _JustDied();
     if (Creature* Ossirian = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_OSSIRIAN)))
         sCreatureTextMgr->SendChat(Ossirian, SAY_KURINAXX_DEATH, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
 }
 void JustDied(Unit* /*killer*/) override
 {
     instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
     Talk(SAY_DEATH);
     _JustDied();
 }
예제 #14
0
 void JustDied(Unit* /*killer*/) override
 {
     _JustDied();
     Talk(SAY_VENOXIS_DEATH);
     me->RemoveAllAuras();
 }
예제 #15
0
 void JustDied(Unit* killer)
 {
     _JustDied();
     DoScriptText(SAY_DEATH[id], me);
 }
 void JustDied(Unit* /*killer*/) override
 {
     _JustDied();
     if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_GANDLING)))
         gate->SetGoState(GO_STATE_ACTIVE);
 }
예제 #17
0
            void UpdateAI(const uint32 diff)
            {
                if (instance && instance->GetBossState(BOSS_MAJORDOMO_EXECUTUS) != DONE)
                {
                    if (!UpdateVictim())
                        return;

                    events.Update(diff);

                    if (!me->FindNearestCreature(NPC_FLAMEWAKER_HEALER, 100.0f) && !me->FindNearestCreature(NPC_FLAMEWAKER_ELITE, 100.0f))
                    {
                        instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, me->GetEntry(), me);
                        me->setFaction(35);
                        me->AI()->EnterEvadeMode();
                        Talk(SAY_DEFEAT);
                        _JustDied();
                        events.ScheduleEvent(EVENT_OUTRO_1, 32000);
                        return;
                    }

                    if (me->HasUnitState(UNIT_STATE_CASTING))
                        return;

                    if (HealthBelowPct(50))
                        DoCast(me, SPELL_AEGIS_OF_RAGNAROS, true);

                    while (uint32 eventId = events.ExecuteEvent())
                    {
                        switch (eventId)
                        {
                            case EVENT_MAGIC_REFLECTION:
                                DoCast(me, SPELL_MAGIC_REFLECTION);
                                events.ScheduleEvent(EVENT_MAGIC_REFLECTION, 30000);
                                break;
                            case EVENT_DAMAGE_REFLECTION:
                                DoCast(me, SPELL_DAMAGE_REFLECTION);
                                events.ScheduleEvent(EVENT_DAMAGE_REFLECTION, 30000);
                                break;
                            case EVENT_BLAST_WAVE:
                                DoCastVictim(SPELL_BLAST_WAVE);
                                events.ScheduleEvent(EVENT_BLAST_WAVE, 10000);
                                break;
                            case EVENT_TELEPORT:
                                if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
                                    DoCast(target, SPELL_TELEPORT);
                                events.ScheduleEvent(EVENT_TELEPORT, 20000);
                                break;
                            default:
                                break;
                        }
                    }

                    DoMeleeAttackIfReady();
                }
                else
                {
                    events.Update(diff);

                    while (uint32 eventId = events.ExecuteEvent())
                    {
                        switch (eventId)
                        {
                            case EVENT_OUTRO_1:
                                me->NearTeleportTo(RagnarosTelePos.GetPositionX(), RagnarosTelePos.GetPositionY(), RagnarosTelePos.GetPositionZ(), RagnarosTelePos.GetOrientation());
                                me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
                                break;
                            case EVENT_OUTRO_2:
                                if (instance)
                                    instance->instance->SummonCreature(NPC_RAGNAROS, RagnarosSummonPos);
                                break;
                            case EVENT_OUTRO_3:
                                Talk(SAY_ARRIVAL2_MAJ);
                                break;
                            default:
                                break;
                        }
                    }
                }
            }
예제 #18
0
        void JustDied(Unit* /*killer*/)
        {
            Talk(SAY_DEATH);

            _JustDied();
        }
예제 #19
0
 void JustDied(Unit* /*killer*/)
 {
     _JustDied();
 }
예제 #20
0
 void JustDied(Unit* /*victim*/)
 {
     _JustDied();
     DoScriptText(SAY_DEATH, me);
 }
예제 #21
0
 void JustDied(Unit* /*killer*/)
 {
     _JustDied();
     Talk(SAY_DEATH);
     DoCast(me, SPELL_DEATH_SPELL, true); // we cast the spell as triggered or the summon effect does not occur
 }
예제 #22
0
 void JustDied(Unit* /*Killer*/)
 {
     _JustDied();
     Talk(SAY_DEATH);
 }
 void JustDied(Unit* /*killer*/) override
 {
     _JustDied();
 }
예제 #24
0
 void JustDied(Unit* who)
 {
     _JustDied();
     summons.DespawnAll();
     Talk(SAY_DEATH);
 }
예제 #25
0
 void JustDied(Unit* /*killer*/)
 {
     _JustDied();
     DoPlaySoundToSet(me, SOUND_DEATH);
     me->CastSpell(me, SPELL_HOPELESS, true); // TODO: this may affect other creatures
 }
 void JustDied(Unit * /*victim*/) override
 {
     _JustDied();
 }
예제 #27
0
 void JustDied(Unit* /*who*/)
 {
     _JustDied();
 }
예제 #28
0
 void JustDied(Unit* /*killer*/) override
 {
     Talk(SAY_DEATH);
     _JustDied();
     me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
 }
 void JustDied(Unit* killer) override
 {
     if (killer && killer != me)
         Talk(SAY_DIE);
     _JustDied();
 }
예제 #30
0
        void JustDied(Unit* /*killer*/)
        {
            _JustDied();

            DoSendQuantumText(SAY_DEATH, me);
        }