Beispiel #1
0
		void JustDied(Unit* /*killer*/)
		{	
			ResetMinions();

			RemoveShadowGaleDebuffFromPlayers();

			me->MonsterYell(SAY_DEATH, LANG_UNIVERSAL, NULL);
		}
Beispiel #2
0
		void Reset()
		{
			me->GetMotionMaster()->MoveTargetedHome();

			events.Reset();

			ResetMinions();
			RemoveShadowGaleDebuffFromPlayers();
		}
Beispiel #3
0
		void UpdateAI(const uint32 diff)
		{
			if (!UpdateVictim() || me->HasUnitState(UNIT_STAT_CASTING))
				return;

			if(ShouldSummonAdds)
			{
				// Despawns the Stalker
				DespawnCreatures(NPC_SHADOW_GALE_STALKER);
				RemoveShadowGaleDebuffFromPlayers();

				me->SetReactState(REACT_AGGRESSIVE);
				me->GetMotionMaster()->Clear();
				me->GetMotionMaster()->MoveChase(me->getVictim());

				if ((rand()%2))
					me->MonsterYell(SAY_SUMMON, LANG_UNIVERSAL, NULL);

				//Adds a visual portal effect to the Stalker
                            if (FacelessPortalStalker)
				FacelessPortalStalker->GetAI()->DoCast(FacelessPortalStalker,SPELL_TWILIGHT_PORTAL_VISUAL,true);
				events.ScheduleEvent(EVENT_REMOVE_TWILIGHT_PORTAL, 7000);

				//Summons Faceless over the Spell
                            if (FacelessPortalStalker)
				FacelessPortalStalker->GetAI()->DoCast(FacelessPortalStalker,SPELL_SPAWN_FACELESS,true);

				ShouldSummonAdds = false;

				// DBM says that the Spell has 40s CD
				events.ScheduleEvent(EVENT_SHADOW_GALE, urand(40000,44000));
			}

			events.Update(diff);

			while (uint32 eventId = events.ExecuteEvent())
			{
				switch (eventId)
				{

				case EVENT_ENFEEBLING_BLOW:
					DoCastVictim(SPELL_ENFEEBLING_BLOW);
					events.ScheduleEvent(EVENT_ENFEEBLING_BLOW, urand(19000,24000));
					break;

				case EVENT_SHADOW_GALE:
                                   if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0, true, 0))
                                   {
                                       ShadowGaleTrigger = me->SummonCreature(NPC_SHADOW_GALE_STALKER, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation(), TEMPSUMMON_CORPSE_DESPAWN);
                                       me->SetReactState(REACT_PASSIVE);
                                       me->GetMotionMaster()->MovePoint(POINT_ERUDAX_IS_AT_STALKER, -739.665f, -827.024f, 232.412f);
                                       me->MonsterYell(SAY_GALE, LANG_UNIVERSAL, NULL);
                                   }
					break;

				case EVENT_REMOVE_TWILIGHT_PORTAL:
					//Removes Portal effect from Stalker
					FacelessPortalStalker->RemoveAllAuras();
					break;

				case EVENT_BINDING_SHADOWS:

					if (Unit* tempTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 500.0f, true))
						DoCast(tempTarget,SPELL_BINDING_SHADOWS);
					events.ScheduleEvent(EVENT_BINDING_SHADOWS, urand(12000,17000));
					break;

				default:
					break;
				}
			}

			DoMeleeAttackIfReady();
		}
Beispiel #4
0
        void JustDied(Unit* /*killer*/)
        {
            ResetMinions();
            RemoveShadowGaleDebuffFromPlayers();
//            Talk(SAY_DEATH);
        }
		void JustDied(Unit* /*killer*/)
		{	
			ResetMinions();
			RemoveShadowGaleDebuffFromPlayers();
			DoScriptText(SAY_DEATH, me);
		}