Scripts/World: Minor timer adjustments to the "shared" abilities for the Emerald Dragons - now even more blizzlike \o/

This commit is contained in:
click
2011-05-31 08:52:08 +02:00
parent 507dcdf563
commit 21e687f9e1
@@ -114,8 +114,8 @@ struct emerald_dragonAI : public WorldBossAI
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NON_ATTACKABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_AGGRESSIVE); me->SetReactState(REACT_AGGRESSIVE);
events.ScheduleEvent(EVENT_TAIL_SWEEP, 4000); events.ScheduleEvent(EVENT_TAIL_SWEEP, 4000);
events.ScheduleEvent(EVENT_NOXIOUS_BREATH, 8000); events.ScheduleEvent(EVENT_NOXIOUS_BREATH, 7500, 15000);
events.ScheduleEvent(EVENT_SEEPING_FOG, urand(10000, 20000)); events.ScheduleEvent(EVENT_SEEPING_FOG, urand(12500, 20000));
} }
// Test if the player has been killed before, and if so, put them to sleep // Test if the player has been killed before, and if so, put them to sleep
@@ -138,15 +138,19 @@ struct emerald_dragonAI : public WorldBossAI
switch (eventId) switch (eventId)
{ {
case EVENT_SEEPING_FOG: case EVENT_SEEPING_FOG:
// Seeping Fog appears only as "pairs", and only ONE pair at any given time!
// Despawntime is 2 minutes, so reschedule it for new cast after 2 minutes + a minor "random time" (30 seconds at max)
DoCast(me, SPELL_SEEPING_FOG_LEFT, true); DoCast(me, SPELL_SEEPING_FOG_LEFT, true);
DoCast(me, SPELL_SEEPING_FOG_RIGHT, true); DoCast(me, SPELL_SEEPING_FOG_RIGHT, true);
events.ScheduleEvent(EVENT_SEEPING_FOG, urand(60000,120000)); events.ScheduleEvent(EVENT_SEEPING_FOG, urand(120000,150000);
break; break;
case EVENT_NOXIOUS_BREATH: case EVENT_NOXIOUS_BREATH:
// Noxious Breath is cast on random intervals, no less than 7.5 seconds between
DoCast(me, SPELL_NOXIOUS_BREATH); DoCast(me, SPELL_NOXIOUS_BREATH);
events.ScheduleEvent(EVENT_NOXIOUS_BREATH, urand(15000, 20000)); events.ScheduleEvent(EVENT_NOXIOUS_BREATH, 7500, 15000);
break; break;
case EVENT_TAIL_SWEEP: case EVENT_TAIL_SWEEP:
// Tail Sweep is cast every two seconds, no matter what goes on in front of the dragon
DoCast(me, SPELL_TAIL_SWEEP); DoCast(me, SPELL_TAIL_SWEEP);
events.ScheduleEvent(EVENT_TAIL_SWEEP, 2000); events.ScheduleEvent(EVENT_TAIL_SWEEP, 2000);
break; break;
@@ -173,10 +177,6 @@ struct emerald_dragonAI : public WorldBossAI
/* /*
* --- Dream Fog NPC * --- Dream Fog NPC
* *
* TODO:
* - Change to random targets on random intervals(?)
* - Check if targets are selected based on threatlevel(?)
*
*/ */
class npc_dream_fog : public CreatureScript class npc_dream_fog : public CreatureScript
@@ -212,7 +212,7 @@ class npc_dream_fog : public CreatureScript
} }
else else
{ {
_roamTimer = 5000; _roamTimer = 2500;
me->GetMotionMaster()->MoveRandom(25.0f); me->GetMotionMaster()->MoveRandom(25.0f);
} }
me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING); me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);