refactor(Scripts): Update vanilla scripts to std::chrono (#14876)
Co-authored-by: Maelthyrr <AmanThul-Project@proton.me> Co-authored-by: Skjalf <47818697+Nyeriah@users.noreply.github.com>
This commit is contained in:
@@ -118,11 +118,11 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(7000, 9000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_GOUGE, urand(12000, 15000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SUMMON_PROWLERS, 6000, 0, PHASE_ALL);
|
||||
events.ScheduleEvent(EVENT_MARK_OF_ARLOKK, urand(9000, 11000), 0, PHASE_ALL);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 30000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 7s, 9s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_GOUGE, 12s, 15s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SUMMON_PROWLERS, 6s, 0, PHASE_ALL);
|
||||
events.ScheduleEvent(EVENT_MARK_OF_ARLOKK, 9s, 11s, 0, PHASE_ALL);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 30s, 0, PHASE_ONE);
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
// Sets up list of Panther spawners to cast on
|
||||
@@ -189,7 +189,7 @@ public:
|
||||
{
|
||||
case EVENT_SHADOW_WORD_PAIN:
|
||||
DoCastVictim(SPELL_SHADOW_WORD_PAIN, true);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(5000, 7000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 5s, 7s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_GOUGE:
|
||||
DoCastVictim(SPELL_GOUGE, true);
|
||||
@@ -211,7 +211,7 @@ public:
|
||||
++_summonCountB;
|
||||
}
|
||||
}
|
||||
events.ScheduleEvent(EVENT_SUMMON_PROWLERS, 6000, 0, PHASE_ALL);
|
||||
events.ScheduleEvent(EVENT_SUMMON_PROWLERS, 6s, 0, PHASE_ALL);
|
||||
break;
|
||||
case EVENT_MARK_OF_ARLOKK:
|
||||
{
|
||||
@@ -223,7 +223,7 @@ public:
|
||||
DoCast(target, SPELL_MARK_OF_ARLOKK, true);
|
||||
Talk(SAY_FEAST_PROWLER, target);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_MARK_OF_ARLOKK, urand(120000, 130000));
|
||||
events.ScheduleEvent(EVENT_MARK_OF_ARLOKK, 120s, 130s);
|
||||
break;
|
||||
}
|
||||
case EVENT_TRANSFORM:
|
||||
@@ -237,19 +237,19 @@ public:
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
DoCastSelf(SPELL_VANISH_VISUAL);
|
||||
DoCastSelf(SPELL_VANISH);
|
||||
events.ScheduleEvent(EVENT_VANISH, 1000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_VANISH, 1s, 0, PHASE_ONE);
|
||||
break;
|
||||
}
|
||||
case EVENT_VANISH:
|
||||
DoCastSelf(SPELL_SUPER_INVIS);
|
||||
me->SetWalk(false);
|
||||
me->GetMotionMaster()->MovePoint(0, frand(-11551.0f, -11508.0f), frand(-1638.0f, -1617.0f), me->GetPositionZ());
|
||||
events.ScheduleEvent(EVENT_VANISH_2, 9000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_VANISH_2, 9s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_VANISH_2:
|
||||
DoCastSelf(SPELL_VANISH);
|
||||
DoCastSelf(SPELL_SUPER_INVIS);
|
||||
events.ScheduleEvent(EVENT_VISIBLE, urand(41000, 47000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_VISIBLE, 41s, 47s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_VISIBLE:
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
@@ -258,14 +258,14 @@ public:
|
||||
AttackStart(target);
|
||||
me->RemoveAura(SPELL_SUPER_INVIS);
|
||||
me->RemoveAura(SPELL_VANISH);
|
||||
events.ScheduleEvent(EVENT_RAVAGE, urand(10000, 14000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM_BACK, urand(30000, 40000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_RAVAGE, 10s, 14s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM_BACK, 30s, 40s, 0, PHASE_TWO);
|
||||
events.SetPhase(PHASE_TWO);
|
||||
me->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, 35.0f, true); // hack
|
||||
break;
|
||||
case EVENT_RAVAGE:
|
||||
DoCastVictim(SPELL_RAVAGE, true);
|
||||
events.ScheduleEvent(EVENT_RAVAGE, urand(10000, 14000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_RAVAGE, 10s, 14s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_TRANSFORM_BACK:
|
||||
{
|
||||
@@ -274,9 +274,9 @@ public:
|
||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_DAGGER));
|
||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(WEAPON_DAGGER));
|
||||
me->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, 35.0f, false); // hack
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(4000, 7000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_GOUGE, urand(12000, 15000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 30000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 4s, 7s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_GOUGE, 12s, 15s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 30s, 0, PHASE_ONE);
|
||||
events.SetPhase(PHASE_ONE);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -76,9 +76,9 @@ public:
|
||||
{
|
||||
_EnterCombat();
|
||||
me->AddAura(SPELL_THRASH, me);
|
||||
events.ScheduleEvent(EVENT_FROSTBREATH, 8000);
|
||||
events.ScheduleEvent(EVENT_MASSIVEGEYSER, 25000);
|
||||
events.ScheduleEvent(EVENT_SLAM, 15000);
|
||||
events.ScheduleEvent(EVENT_FROSTBREATH, 8s);
|
||||
events.ScheduleEvent(EVENT_MASSIVEGEYSER, 25s);
|
||||
events.ScheduleEvent(EVENT_SLAM, 15s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -97,15 +97,15 @@ public:
|
||||
{
|
||||
case EVENT_FROSTBREATH:
|
||||
DoCastVictim(SPELL_FROSTBREATH);
|
||||
events.ScheduleEvent(EVENT_FROSTBREATH, urand(8000, 20000));
|
||||
events.ScheduleEvent(EVENT_FROSTBREATH, 8s, 20s);
|
||||
break;
|
||||
case EVENT_MASSIVEGEYSER:
|
||||
DoCastVictim(SPELL_MASSIVEGEYSER);
|
||||
events.ScheduleEvent(EVENT_MASSIVEGEYSER, urand(22000, 32000));
|
||||
events.ScheduleEvent(EVENT_MASSIVEGEYSER, 22s, 32s);
|
||||
break;
|
||||
case EVENT_SLAM:
|
||||
DoCastVictim(SPELL_SLAM, true);
|
||||
events.ScheduleEvent(EVENT_SLAM, urand(12000, 20000));
|
||||
events.ScheduleEvent(EVENT_SLAM, 12s, 20s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -113,20 +113,20 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_BLOOD_SIPHON, 90000);
|
||||
events.ScheduleEvent(EVENT_CORRUPTED_BLOOD, 25000);
|
||||
events.ScheduleEvent(EVENT_CAUSE_INSANITY, 17000);
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 600000);
|
||||
events.ScheduleEvent(EVENT_BLOOD_SIPHON, 90s);
|
||||
events.ScheduleEvent(EVENT_CORRUPTED_BLOOD, 25s);
|
||||
events.ScheduleEvent(EVENT_CAUSE_INSANITY, 17s);
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 1min);
|
||||
if (instance->GetBossState(DATA_JEKLIK) != DONE)
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_JEKLIK, 21000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_JEKLIK, 21s);
|
||||
if (instance->GetBossState(DATA_VENOXIS) != DONE)
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_VENOXIS, 14000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_VENOXIS, 14s);
|
||||
if (instance->GetBossState(DATA_MARLI) != DONE)
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 15000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 15s);
|
||||
if (instance->GetBossState(DATA_THEKAL) != DONE)
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_THEKAL, 10000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_THEKAL, 10s);
|
||||
if (instance->GetBossState(DATA_ARLOKK) != DONE)
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_ARLOKK, 18000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_ARLOKK, 18s);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
@@ -153,11 +153,11 @@ public:
|
||||
{
|
||||
case EVENT_BLOOD_SIPHON:
|
||||
DoCastAOE(SPELL_BLOOD_SIPHON, true);
|
||||
events.ScheduleEvent(EVENT_BLOOD_SIPHON, 90000);
|
||||
events.ScheduleEvent(EVENT_BLOOD_SIPHON, 90s);
|
||||
break;
|
||||
case EVENT_CORRUPTED_BLOOD:
|
||||
DoCastVictim(SPELL_CORRUPTED_BLOOD, true);
|
||||
events.ScheduleEvent(EVENT_CORRUPTED_BLOOD, urand(30000, 45000));
|
||||
events.ScheduleEvent(EVENT_CORRUPTED_BLOOD, 30s, 40s);
|
||||
break;
|
||||
case EVENT_CAUSE_INSANITY:
|
||||
if (me->GetThreatMgr().GetThreatListSize() > 1)
|
||||
@@ -167,20 +167,20 @@ public:
|
||||
DoCast(victim, SPELL_CAUSE_INSANITY);
|
||||
}
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CAUSE_INSANITY, urand(35000, 45000));
|
||||
events.ScheduleEvent(EVENT_CAUSE_INSANITY, 35s, 40s);
|
||||
break;
|
||||
case EVENT_ENRAGE:
|
||||
if (!me->HasAura(SPELL_ENRAGE))
|
||||
DoCastSelf(SPELL_ENRAGE);
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 90000);
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 90s);
|
||||
break;
|
||||
case EVENT_ASPECT_OF_JEKLIK:
|
||||
DoCastVictim(SPELL_ASPECT_OF_JEKLIK, true);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_JEKLIK, 24000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_JEKLIK, 24s);
|
||||
break;
|
||||
case EVENT_ASPECT_OF_VENOXIS:
|
||||
DoCastVictim(SPELL_ASPECT_OF_VENOXIS, true);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_VENOXIS, urand(16000, 18000));
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_VENOXIS, 16s, 18s);
|
||||
break;
|
||||
case EVENT_ASPECT_OF_MARLI:
|
||||
if (Unit* victim = SelectTarget(SelectTargetMethod::MaxThreat, 0, 5.f, true))
|
||||
@@ -188,11 +188,11 @@ public:
|
||||
DoCast(victim, SPELL_ASPECT_OF_MARLI, true);
|
||||
me->GetThreatMgr().ModifyThreatByPercent(victim, -100.f);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 45000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 45s);
|
||||
break;
|
||||
case EVENT_ASPECT_OF_THEKAL:
|
||||
DoCastVictim(SPELL_ASPECT_OF_THEKAL, true);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_THEKAL, 15000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_THEKAL, 15s);
|
||||
break;
|
||||
case EVENT_ASPECT_OF_ARLOKK:
|
||||
if (Unit* victim = SelectTarget(SelectTargetMethod::MaxThreat, 0, 5.f, true))
|
||||
@@ -200,7 +200,7 @@ public:
|
||||
DoCast(victim, SPELL_ASPECT_OF_ARLOKK, true);
|
||||
me->GetThreatMgr().ModifyThreatByPercent(victim, -100.f);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_ARLOKK, urand(10000, 15000));
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_ARLOKK, 10s, 15s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -151,12 +151,12 @@ struct boss_jeklik : public BossAI
|
||||
SetCombatMovement(true);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
events.SetPhase(PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_CHARGE_JEKLIK, urand(10000, 20000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, urand(5000, 15000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_BLOOD_LEECH, urand(5000, 15000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SONIC_BURST, urand(5000, 15000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SWOOP, 20000, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SPAWN_BATS, 30000, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_CHARGE_JEKLIK, 10s, 20s, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, 5s, 15s, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_BLOOD_LEECH, 5s, 15s, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SONIC_BURST, 5s, 15s, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SWOOP, 20s, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SPAWN_BATS, 30s, PHASE_ONE);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& /*damage*/, DamageEffectType, SpellSchoolMask) override
|
||||
@@ -168,12 +168,12 @@ struct boss_jeklik : public BossAI
|
||||
events.SetPhase(PHASE_TWO);
|
||||
events.CancelEventGroup(PHASE_ONE);
|
||||
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, urand(5000, 15000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(10000, 15000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_PSYCHIC_SCREAM, urand(25000, 35000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_MIND_FLAY, urand(10000, 30000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_GREATER_HEAL, 25000, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SPAWN_FLYING_BATS, 10000, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 5s, 15s, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 10s, 15s, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_PSYCHIC_SCREAM, 25s, 35s, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_MIND_FLAY, 10s, 30s, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_GREATER_HEAL, 25s, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SPAWN_FLYING_BATS, 10s, PHASE_TWO);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -200,23 +200,23 @@ struct boss_jeklik : public BossAI
|
||||
DoCast(target, SPELL_CHARGE);
|
||||
AttackStart(target);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHARGE_JEKLIK, urand(15000, 30000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_CHARGE_JEKLIK, 15s, 30s, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_PIERCE_ARMOR:
|
||||
DoCastVictim(SPELL_PIERCE_ARMOR);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, urand(20000, 30000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, 20s, 30s, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_BLOOD_LEECH:
|
||||
DoCastVictim(SPELL_BLOOD_LEECH);
|
||||
events.ScheduleEvent(EVENT_BLOOD_LEECH, urand(10000, 20000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_BLOOD_LEECH, 10s, 20s, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_SONIC_BURST:
|
||||
DoCastVictim(SPELL_SONIC_BURST);
|
||||
events.ScheduleEvent(EVENT_SONIC_BURST, urand(20000, 30000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SONIC_BURST, 20s, 30s, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_SWOOP:
|
||||
DoCastVictim(SPELL_SWOOP);
|
||||
events.ScheduleEvent(EVENT_SWOOP, urand(20000, 30000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SWOOP, 20s, 30s, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_SPAWN_BATS:
|
||||
Talk(EMOTE_SUMMON_BATS);
|
||||
@@ -224,37 +224,37 @@ struct boss_jeklik : public BossAI
|
||||
for (uint8 i = 0; i < 6; ++i)
|
||||
if (Creature* bat = me->SummonCreature(NPC_BLOODSEEKER_BAT, SpawnBat[i], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000))
|
||||
bat->AI()->AttackStart(target);
|
||||
events.ScheduleEvent(EVENT_SPAWN_BATS, 30000, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SPAWN_BATS, 30s, PHASE_ONE);
|
||||
break;
|
||||
//Phase two
|
||||
case EVENT_CURSE_OF_BLOOD:
|
||||
DoCastSelf(SPELL_CURSE_OF_BLOOD);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, urand(25000, 30000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 25s, 30s, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_PSYCHIC_SCREAM:
|
||||
DoCastVictim(SPELL_PSYCHIC_SCREAM);
|
||||
events.ScheduleEvent(EVENT_PSYCHIC_SCREAM, urand(35000, 45000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_PSYCHIC_SCREAM, 35s, 45s, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_SHADOW_WORD_PAIN:
|
||||
DoCastRandomTarget(SPELL_SHADOW_WORD_PAIN, 0, true);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(12000, 18000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 12s, 18s, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_MIND_FLAY:
|
||||
DoCastVictim(SPELL_MIND_FLAY);
|
||||
events.ScheduleEvent(EVENT_MIND_FLAY, urand(20000, 40000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_MIND_FLAY, 20s, 40s, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_GREATER_HEAL:
|
||||
Talk(EMOTE_GREAT_HEAL);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
DoCastSelf(SPELL_GREATER_HEAL);
|
||||
events.ScheduleEvent(EVENT_GREATER_HEAL, 25000, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_GREATER_HEAL, 25s, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_SPAWN_FLYING_BATS:
|
||||
Talk(SAY_CALL_RIDERS);
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
|
||||
if (Creature* flyingBat = me->SummonCreature(NPC_FRENZIED_BAT, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ() + 15.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000))
|
||||
flyingBat->AI()->DoZoneInCombat();
|
||||
events.ScheduleEvent(EVENT_SPAWN_FLYING_BATS, urand(10000, 15000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SPAWN_FLYING_BATS, 10s, 15s, PHASE_TWO);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -61,11 +61,11 @@ struct boss_jindo : public BossAI
|
||||
void EnterCombat(Unit* who) override
|
||||
{
|
||||
BossAI::EnterCombat(who);
|
||||
events.ScheduleEvent(EVENT_BRAIN_WASH_TOTEM, 20000);
|
||||
events.ScheduleEvent(EVENT_POWERFULL_HEALING_WARD, 16000);
|
||||
events.ScheduleEvent(EVENT_HEX, 8000);
|
||||
events.ScheduleEvent(EVENT_DELUSIONS_OF_JINDO, 10000);
|
||||
events.ScheduleEvent(EVENT_TELEPORT, 5000);
|
||||
events.ScheduleEvent(EVENT_BRAIN_WASH_TOTEM, 20s);
|
||||
events.ScheduleEvent(EVENT_POWERFULL_HEALING_WARD, 16s);
|
||||
events.ScheduleEvent(EVENT_HEX, 8s);
|
||||
events.ScheduleEvent(EVENT_DELUSIONS_OF_JINDO, 10s);
|
||||
events.ScheduleEvent(EVENT_TELEPORT, 5s);
|
||||
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
@@ -125,24 +125,24 @@ struct boss_jindo : public BossAI
|
||||
{
|
||||
case EVENT_BRAIN_WASH_TOTEM:
|
||||
DoCastSelf(SPELL_BRAIN_WASH_TOTEM);
|
||||
events.ScheduleEvent(EVENT_BRAIN_WASH_TOTEM, urand(18000, 26000));
|
||||
events.ScheduleEvent(EVENT_BRAIN_WASH_TOTEM, 18s, 26s);
|
||||
break;
|
||||
case EVENT_POWERFULL_HEALING_WARD:
|
||||
DoCastSelf(SPELL_POWERFULL_HEALING_WARD, true);
|
||||
events.ScheduleEvent(EVENT_POWERFULL_HEALING_WARD, urand(14000, 20000));
|
||||
events.ScheduleEvent(EVENT_POWERFULL_HEALING_WARD, 14s, 20s);
|
||||
break;
|
||||
case EVENT_HEX:
|
||||
if (me->GetThreatMgr().GetThreatListSize() > 1)
|
||||
DoCastVictim(SPELL_HEX, true);
|
||||
events.ScheduleEvent(EVENT_HEX, urand(12000, 20000));
|
||||
events.ScheduleEvent(EVENT_HEX, 12s, 20s);
|
||||
break;
|
||||
case EVENT_DELUSIONS_OF_JINDO:
|
||||
DoCastRandomTarget(SPELL_DELUSIONS_OF_JINDO);
|
||||
events.ScheduleEvent(EVENT_DELUSIONS_OF_JINDO, urand(4000, 12000));
|
||||
events.ScheduleEvent(EVENT_DELUSIONS_OF_JINDO, 4s, 12s);
|
||||
break;
|
||||
case EVENT_TELEPORT:
|
||||
DoCastRandomTarget(SPELL_BANISH);
|
||||
events.ScheduleEvent(EVENT_TELEPORT, urand(15000, 23000));
|
||||
events.ScheduleEvent(EVENT_TELEPORT, 15s, 23s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -187,13 +187,13 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_OVERPOWER, 1000);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(14000, 28000));
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, urand(24000, 30000));
|
||||
events.ScheduleEvent(EVENT_CHECK_OHGAN, 1000);
|
||||
events.ScheduleEvent(EVENT_WATCH_PLAYER, urand(12000, 24000));
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, urand(30000, 40000));
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 1000);
|
||||
events.ScheduleEvent(EVENT_OVERPOWER, 1s);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 14s, 28s);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 24s, 30s);
|
||||
events.ScheduleEvent(EVENT_CHECK_OHGAN, 1s);
|
||||
events.ScheduleEvent(EVENT_WATCH_PLAYER, 12s, 24s);
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, 30s, 40s);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 1s);
|
||||
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
|
||||
Talk(SAY_AGGRO);
|
||||
me->Dismount();
|
||||
@@ -302,7 +302,7 @@ public:
|
||||
if (!_useExecute)
|
||||
{
|
||||
_useExecute = true;
|
||||
events.ScheduleEvent(EVENT_EXECUTE, 1000);
|
||||
events.ScheduleEvent(EVENT_EXECUTE, 1s);
|
||||
}
|
||||
}
|
||||
else if (_useExecute)
|
||||
@@ -372,11 +372,11 @@ public:
|
||||
if (instance->GetBossState(DATA_MANDOKIR) == SPECIAL)
|
||||
{
|
||||
me->GetMotionMaster()->MovePoint(0, PosMandokir[1].m_positionX, PosMandokir[1].m_positionY, PosMandokir[1].m_positionZ);
|
||||
events.ScheduleEvent(EVENT_STARTED, 6000);
|
||||
events.ScheduleEvent(EVENT_STARTED, 6s);
|
||||
}
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_CHECK_START, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK_START, 1s);
|
||||
}
|
||||
break;
|
||||
case EVENT_STARTED:
|
||||
@@ -408,20 +408,20 @@ public:
|
||||
case EVENT_OVERPOWER:
|
||||
if (DoCastVictim(SPELL_OVERPOWER) == SPELL_CAST_OK)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_OVERPOWER, urand(6000, 8000));
|
||||
events.ScheduleEvent(EVENT_OVERPOWER, 6s, 8s);
|
||||
}
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_OVERPOWER, 1000);
|
||||
events.ScheduleEvent(EVENT_OVERPOWER, 1s);
|
||||
}
|
||||
break;
|
||||
case EVENT_MORTAL_STRIKE:
|
||||
DoCastVictim(SPELL_MORTAL_STRIKE);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(14000, 28000));
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 14s, 28s);
|
||||
break;
|
||||
case EVENT_WHIRLWIND:
|
||||
DoCast(me, SPELL_WHIRLWIND);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, urand(22000, 26000));
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 22s, 26s);
|
||||
break;
|
||||
case EVENT_CHECK_OHGAN:
|
||||
if (instance->GetBossState(DATA_OHGAN) == DONE)
|
||||
@@ -431,7 +431,7 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_CHECK_OHGAN, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK_OHGAN, 1s);
|
||||
}
|
||||
break;
|
||||
case EVENT_WATCH_PLAYER:
|
||||
@@ -441,7 +441,7 @@ public:
|
||||
Talk(SAY_WATCH, player);
|
||||
_chargeTarget = std::make_pair(player->GetGUID(), 0.f);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_WATCH_PLAYER, urand(12000, 24000));
|
||||
events.ScheduleEvent(EVENT_WATCH_PLAYER, 12s, 24s);
|
||||
break;
|
||||
case EVENT_CHARGE_PLAYER:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MinDistance, 0, [this](Unit const* target)
|
||||
@@ -454,17 +454,17 @@ public:
|
||||
}))
|
||||
{
|
||||
DoCast(target, SPELL_CHARGE);
|
||||
events.DelayEvents(1500);
|
||||
events.DelayEvents(1500ms);
|
||||
if (Unit* mainTarget = SelectTarget(SelectTargetMethod::MaxThreat, 0, 100.0f))
|
||||
{
|
||||
me->GetThreatMgr().ModifyThreatByPercent(mainTarget, -100);
|
||||
}
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, urand(30000, 40000));
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, 30s, 40s);
|
||||
break;
|
||||
case EVENT_EXECUTE:
|
||||
DoCastVictim(SPELL_EXECUTE, true);
|
||||
events.ScheduleEvent(EVENT_EXECUTE, urand(7000, 14000));
|
||||
events.ScheduleEvent(EVENT_EXECUTE, 7s, 14s);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
{
|
||||
@@ -481,11 +481,11 @@ public:
|
||||
if (meleeRangeTargets.size() >= 5)
|
||||
{
|
||||
DoCastVictim(SPELL_MANDOKIR_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, urand(10000, 20000));
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 10s, 20s);
|
||||
}
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 1000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 1s);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ struct boss_marli : public BossAI
|
||||
void EnterCombat(Unit* who) override
|
||||
{
|
||||
BossAI::EnterCombat(who);
|
||||
events.ScheduleEvent(EVENT_SPAWN_START_SPIDERS, 1000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SPAWN_START_SPIDERS, 1s, 0, PHASE_ONE);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
@@ -144,14 +144,14 @@ struct boss_marli : public BossAI
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_SPAWN_START_SPIDERS:
|
||||
events.ScheduleEvent(EVENT_TALK_FIRST_SPIDERS, 500, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_TALK_FIRST_SPIDERS, 500ms, 0, PHASE_TWO);
|
||||
DoCastAOE(SPELL_HATCH_EGGS);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 60000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_VOLLEY, 15000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_HATCH_SPIDER_EGG, 30000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_DRAIN_LIFE, 30000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_THRASH, urand(4000, 6000)); // all phases
|
||||
events.ScheduleEvent(EVENT_ENLARGE, urand(10000, 20000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 1min, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_VOLLEY, 15s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_HATCH_SPIDER_EGG, 30s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_DRAIN_LIFE, 30s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_THRASH, 4s, 6s); // all phases
|
||||
events.ScheduleEvent(EVENT_ENLARGE, 10s, 20s, 0, PHASE_TWO);
|
||||
events.SetPhase(PHASE_TWO);
|
||||
break;
|
||||
case EVENT_TALK_FIRST_SPIDERS:
|
||||
@@ -159,39 +159,39 @@ struct boss_marli : public BossAI
|
||||
break;
|
||||
case EVENT_POISON_VOLLEY:
|
||||
DoCastVictim(SPELL_POISON_VOLLEY, true);
|
||||
events.ScheduleEvent(EVENT_POISON_VOLLEY, urand(10000, 20000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_VOLLEY, 10s, 20s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_HATCH_SPIDER_EGG:
|
||||
DoCastSelf(SPELL_HATCH_SPIDER_EGG, true);
|
||||
events.ScheduleEvent(EVENT_HATCH_SPIDER_EGG, 20000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_HATCH_SPIDER_EGG, 20s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_DRAIN_LIFE:
|
||||
DoCastRandomTarget(SPELL_DRAIN_LIFE);
|
||||
events.ScheduleEvent(EVENT_DRAIN_LIFE, urand(20000, 50000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_DRAIN_LIFE, 20s, 50s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_ENLARGE:
|
||||
{
|
||||
std::list<Creature*> targets = DoFindFriendlyMissingBuff(100.f, SPELL_ENLARGE);
|
||||
if (targets.size() > 0)
|
||||
DoCast(*(targets.begin()), SPELL_ENLARGE);
|
||||
events.ScheduleEvent(EVENT_ENLARGE, urand(20000, 40000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_ENLARGE, 20s, 40s, 0, PHASE_TWO);
|
||||
break;
|
||||
}
|
||||
case EVENT_TRANSFORM:
|
||||
Talk(SAY_TRANSFORM);
|
||||
DoCastSelf(SPELL_SPIDER_FORM, true);
|
||||
me->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, 35.0f, true); // hack
|
||||
events.ScheduleEvent(EVENT_ENVELOPING_WEB, 5000, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, 6000, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_POISON, 1000, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_POISON_SHOCK, urand(5000, 10000), 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM_BACK, 60000, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_ENVELOPING_WEB, 5s, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, 6s, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_POISON, 1s, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_POISON_SHOCK, 5s, 10s, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM_BACK, 1min, 0, PHASE_THREE);
|
||||
events.SetPhase(PHASE_THREE);
|
||||
break;
|
||||
case EVENT_ENVELOPING_WEB:
|
||||
DoCastAOE(SPELL_ENVELOPING_WEB);
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, 500, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_ENVELOPING_WEB, urand(15000, 20000), 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, 500ms, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_ENVELOPING_WEB, 15s, 20s, 0, PHASE_THREE);
|
||||
break;
|
||||
case EVENT_CHARGE_PLAYER:
|
||||
{
|
||||
@@ -212,27 +212,27 @@ struct boss_marli : public BossAI
|
||||
}
|
||||
case EVENT_CORROSIVE_POISON:
|
||||
DoCastVictim(SPELL_CORROSIVE_POISON);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_POISON, urand(25000, 35000), 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_POISON, 25s, 35s, 0, PHASE_THREE);
|
||||
break;
|
||||
case EVENT_POISON_SHOCK:
|
||||
DoCastRandomTarget(SPELL_POISON_SHOCK);
|
||||
events.ScheduleEvent(EVENT_POISON_SHOCK, 10000, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_POISON_SHOCK, 10s, 0, PHASE_THREE);
|
||||
break;
|
||||
case EVENT_TRANSFORM_BACK:
|
||||
me->RemoveAura(SPELL_SPIDER_FORM);
|
||||
DoCastSelf(SPELL_TRANSFORM_BACK, true);
|
||||
Talk(SAY_TRANSFORM_BACK);
|
||||
me->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, 35.0f, false); // hack
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 60000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_VOLLEY, 15000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_HATCH_SPIDER_EGG, 30000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_DRAIN_LIFE, 30000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_ENLARGE, urand(10000, 20000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 1min, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_VOLLEY, 15s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_HATCH_SPIDER_EGG, 30s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_DRAIN_LIFE, 30s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_ENLARGE, 10s, 20s, 0, PHASE_TWO);
|
||||
events.SetPhase(PHASE_TWO);
|
||||
break;
|
||||
case EVENT_THRASH:
|
||||
DoCastVictim(SPELL_THRASH);
|
||||
events.ScheduleEvent(EVENT_THRASH, urand(10000, 20000));
|
||||
events.ScheduleEvent(EVENT_THRASH, 10s, 20s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -143,13 +143,13 @@ public:
|
||||
_EnterCombat();
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
// Always running events
|
||||
events.ScheduleEvent(EVENT_THRASH, 5000);
|
||||
events.ScheduleEvent(EVENT_THRASH, 5s);
|
||||
// Phase one events (regular form)
|
||||
events.ScheduleEvent(EVENT_HOLY_NOVA, urand(5000, 15000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_DISPEL_MAGIC, 35000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_FIRE, urand(10000,20000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_RENEW, 30000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_WRATH, urand(15000, 25000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_NOVA, 5s, 15s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_DISPEL_MAGIC, 35s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_FIRE, 10s, 20s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_RENEW, 30s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_WRATH, 15s, 25s, 0, PHASE_ONE);
|
||||
|
||||
events.SetPhase(PHASE_ONE);
|
||||
|
||||
@@ -165,13 +165,13 @@ public:
|
||||
{
|
||||
_transformed = true;
|
||||
// schedule the event that changes our phase
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 100);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 100ms);
|
||||
}
|
||||
// we're losing health, bad, go frenzy
|
||||
else if (!_frenzied && !HealthAbovePct(20))
|
||||
{
|
||||
_frenzied = true;
|
||||
events.ScheduleEvent(EVENT_FRENZY, 100);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 100ms);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -193,31 +193,31 @@ public:
|
||||
// thrash is available in all phases
|
||||
case EVENT_THRASH:
|
||||
DoCast(me, SPELL_THRASH, true);
|
||||
events.ScheduleEvent(EVENT_THRASH, urand(10000, 20000));
|
||||
events.ScheduleEvent(EVENT_THRASH, 10s, 20s);
|
||||
break;
|
||||
|
||||
// troll form spells and Actions (first part)
|
||||
case EVENT_DISPEL_MAGIC:
|
||||
DoCast(me, SPELL_DISPEL_MAGIC);
|
||||
events.ScheduleEvent(EVENT_DISPEL_MAGIC, urand(15000, 20000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_DISPEL_MAGIC, 15s, 20s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_RENEW:
|
||||
DoCast(me, SPELL_RENEW);
|
||||
events.ScheduleEvent(EVENT_RENEW, urand(25000, 30000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_RENEW, 25s, 30s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_HOLY_WRATH:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat))
|
||||
DoCast(target, SPELL_HOLY_WRATH);
|
||||
events.ScheduleEvent(EVENT_HOLY_WRATH, urand(12000, 22000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_WRATH, 12s, 22s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_HOLY_FIRE:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random))
|
||||
DoCast(target, SPELL_HOLY_FIRE);
|
||||
events.ScheduleEvent(EVENT_HOLY_FIRE, urand(10000, 24000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_FIRE, 10s, 24s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_HOLY_NOVA:
|
||||
DoCastSelf(SPELL_HOLY_NOVA);
|
||||
events.ScheduleEvent(EVENT_HOLY_NOVA, urand(10000, 24000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_NOVA, 10s, 24s, 0, PHASE_ONE);
|
||||
break;
|
||||
|
||||
//
|
||||
@@ -227,17 +227,17 @@ public:
|
||||
case EVENT_VENOM_SPIT:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random))
|
||||
DoCast(target, SPELL_VENOM_SPIT);
|
||||
events.ScheduleEvent(EVENT_VENOM_SPIT, urand(5000, 15000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_VENOM_SPIT, 5s, 15s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_POISON_CLOUD:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random))
|
||||
DoCast(target, SPELL_POISON_CLOUD);
|
||||
events.ScheduleEvent(EVENT_POISON_CLOUD, urand(15000, 20000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_CLOUD, 15s, 20s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_PARASITIC_SERPENT:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random))
|
||||
DoCast(target, SPELL_SUMMON_PARASITIC_SERPENT);
|
||||
events.ScheduleEvent(EVENT_PARASITIC_SERPENT, 15000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_PARASITIC_SERPENT, 15s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_FRENZY:
|
||||
// frenzy at 20% health
|
||||
@@ -255,9 +255,9 @@ public:
|
||||
DoResetThreatList();
|
||||
|
||||
// phase two events (snakeform)
|
||||
events.ScheduleEvent(EVENT_VENOM_SPIT, 5000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_CLOUD, 10000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_PARASITIC_SERPENT, 30000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_VENOM_SPIT, 5s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_CLOUD, 10s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_PARASITIC_SERPENT, 30s, 0, PHASE_TWO);
|
||||
|
||||
// transformed, start phase two
|
||||
events.SetPhase(PHASE_TWO);
|
||||
@@ -301,7 +301,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit*)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_POISON, 8 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_POISON, 8ms);
|
||||
|
||||
if (Creature* Venoxis = GetVenoxis())
|
||||
{
|
||||
@@ -331,7 +331,7 @@ public:
|
||||
case EVENT_POISON:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_POISON);
|
||||
events.ScheduleEvent(EVENT_POISON, 15 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_POISON, 15ms);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user