Noth will now cast curse when he teleports back to the ground

closes issue #370
This commit is contained in:
lee1991
2017-02-11 18:36:49 +00:00
parent 57b8cf0235
commit d5b9825c64

View File

@@ -76,16 +76,16 @@ public:
InstanceScript* pInstance;
EventMap events;
SummonList summons;
uint8 totalPhase;
void StartGroundPhase()
{
me->SetReactState(REACT_AGGRESSIVE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
me->SetControlled(false, UNIT_STATE_ROOT);
events.SetPhase(0);
events.Reset();
events.ScheduleEvent(EVENT_MOVE_TO_BALCONY, (totalPhase < 2 ? 110000 : (110000 / totalPhase)));
events.ScheduleEvent(EVENT_MOVE_TO_BALCONY, 110000);
events.ScheduleEvent(EVENT_SPELL_CURSE, 15000);
events.ScheduleEvent(EVENT_SUMMON_PLAGUED_WARRIOR_ANNOUNCE, 25000);
if (Is25ManRaid())
@@ -98,7 +98,7 @@ public:
me->AttackStop();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE |UNIT_FLAG_DISABLE_MOVE);
me->SetControlled(true, UNIT_STATE_ROOT);
events.SetPhase(1);
events.Reset();
events.ScheduleEvent(EVENT_BALCONY_SUMMON_ANNOUNCE, 4000);
events.ScheduleEvent(EVENT_MOVE_TO_GROUND, 70000);
@@ -127,7 +127,7 @@ public:
summons.DespawnAll();
me->SetControlled(false, UNIT_STATE_ROOT);
me->SetReactState(REACT_AGGRESSIVE);
totalPhase = 0;
events.SetPhase(0);
if (pInstance)
pInstance->SetData(EVENT_NOTH, NOT_STARTED);
@@ -189,7 +189,8 @@ public:
{
// GROUND
case EVENT_SPELL_CURSE:
me->CastCustomSpell(RAID_MODE(SPELL_CURSE_OF_THE_PLAGUEBRINGER_10, SPELL_CURSE_OF_THE_PLAGUEBRINGER_25), SPELLVALUE_MAX_TARGETS, RAID_MODE(3, 10), me, false);
if (events.GetPhaseMask() == 0)
me->CastCustomSpell(RAID_MODE(SPELL_CURSE_OF_THE_PLAGUEBRINGER_10, SPELL_CURSE_OF_THE_PLAGUEBRINGER_25), SPELLVALUE_MAX_TARGETS, RAID_MODE(3, 10), false);
events.RepeatEvent(25000);
break;
case EVENT_SUMMON_PLAGUED_WARRIOR_ANNOUNCE:
@@ -224,9 +225,9 @@ public:
break;
case EVENT_BALCONY_SUMMON_REAL:
me->CastSpell(me, SPELL_SUMMON_PLAGUED_WARRIORS, true); // visual only
if (totalPhase == 0)
if (events.GetPhaseMask() == 0)
SummonHelper(NPC_PLAGUED_CHAMPION, RAID_MODE(2,4));
else if (totalPhase == 1)
else if (events.GetPhaseMask() == 1)
{
SummonHelper(NPC_PLAGUED_CHAMPION, RAID_MODE(1,2));
SummonHelper(NPC_PLAGUED_GUARDIAN, RAID_MODE(1,2));
@@ -237,10 +238,8 @@ public:
break;
case EVENT_MOVE_TO_GROUND:
me->MonsterTextEmote("%s teleports back into the battle!", 0, true);
totalPhase++;
StartGroundPhase();
me->NearTeleportTo(nothPosition.GetPositionX(), nothPosition.GetPositionY(), nothPosition.GetPositionZ(), nothPosition.GetOrientation(), true);
events.PopEvent();
break;
}