Scripts/Ulduar/XT-002: Fix erratic timer issues and stand/submerge spell script targets.

Fixes #2961
This commit is contained in:
Machiavelli
2011-09-22 20:13:40 +02:00
parent 29fef71137
commit c909da08cd

View File

@@ -274,18 +274,18 @@ class boss_xt002 : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
DoCast(target, RAID_MODE(SPELL_SEARING_LIGHT_10, SPELL_SEARING_LIGHT_25));
events.RepeatEvent(TIMER_SEARING_LIGHT);
events.ScheduleEvent(EVENT_SEARING_LIGHT, TIMER_SEARING_LIGHT);
break;
case EVENT_GRAVITY_BOMB:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
DoCast(target, RAID_MODE(SPELL_GRAVITY_BOMB_10, SPELL_GRAVITY_BOMB_25));
events.RepeatEvent(TIMER_GRAVITY_BOMB);
events.ScheduleEvent(EVENT_GRAVITY_BOMB, TIMER_GRAVITY_BOMB);
break;
case EVENT_TYMPANIC_TANTRUM:
DoScriptText(SAY_TYMPANIC_TANTRUM, me);
DoCast(SPELL_TYMPANIC_TANTRUM);
events.RepeatEvent(urand(TIMER_TYMPANIC_TANTRUM_MIN, TIMER_TYMPANIC_TANTRUM_MAX));
events.ScheduleEvent(EVENT_TYMPANIC_TANTRUM, urand(TIMER_TYMPANIC_TANTRUM_MIN, TIMER_TYMPANIC_TANTRUM_MAX));
break;
case EVENT_DISPOSE_HEART:
SetPhaseOne();
@@ -352,7 +352,7 @@ class boss_xt002 : public CreatureScript
{
DoScriptText(SAY_HEART_OPENED, me);
DoCast(SPELL_SUBMERGE); // WIll make creature untargetable
DoCast(me, SPELL_SUBMERGE); // WIll make creature untargetable
me->AttackStop();
me->SetReactState(REACT_PASSIVE);
@@ -383,7 +383,7 @@ class boss_xt002 : public CreatureScript
{
DoScriptText(SAY_HEART_CLOSED, me);
DoCast(SPELL_STAND);
DoCast(me, SPELL_STAND);
me->SetReactState(REACT_AGGRESSIVE);
_phase = 1;
@@ -974,12 +974,12 @@ class spell_xt002_submerged : public SpellScriptLoader
void HandleScript(SpellEffIndex /*eff*/)
{
Unit* caster = GetCaster();
if (!caster)
Creature* target = GetHitCreature();
if (!target)
return;
caster->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
caster->SetByteValue(UNIT_FIELD_BYTES_1, 0, UNIT_STAND_STATE_SUBMERGED);
target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
target->SetByteValue(UNIT_FIELD_BYTES_1, 0, UNIT_STAND_STATE_SUBMERGED);
}
void Register()
@@ -1005,7 +1005,7 @@ class spell_xt002_stand : public SpellScriptLoader
void HandleScript(SpellEffIndex /*eff*/)
{
Unit* target = GetTargetUnit();
Creature* target = GetHitCreature();
if (!target)
return;