Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4

This commit is contained in:
Shauren committed 2013-06-23 14:51:52 +02:00
commit 3f3a32df34
218 files changed
+1060 -974

No files matched your search

@@ -129,11 +129,11 @@ class mob_av_marshal_or_warmaster : public CreatureScript
switch (eventId)
{
case EVENT_CHARGE_TARGET:
DoCast(me->GetVictim(), SPELL_CHARGE);
DoCastVictim(SPELL_CHARGE);
events.ScheduleEvent(EVENT_CHARGE, urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS));
break;
case EVENT_CLEAVE:
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
events.ScheduleEvent(EVENT_CLEAVE, urand(10 * IN_MILLISECONDS, 16 * IN_MILLISECONDS));
break;
case EVENT_DEMORALIZING_SHOUT:
@@ -69,7 +69,7 @@ public:
if (waterBoltTimer < diff)
{
DoCast(me->GetVictim(), SPELL_WATERBOLT);
DoCastVictim(SPELL_WATERBOLT);
waterBoltTimer = 5 * IN_MILLISECONDS;
} else waterBoltTimer -= diff;
@@ -159,25 +159,25 @@ public:
if (arcaneExplosionTimer < diff)
{
DoCast(me->GetVictim(), SPELL_ARCANE_EXPLOSION);
DoCastVictim(SPELL_ARCANE_EXPLOSION);
arcaneExplosionTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
} else arcaneExplosionTimer -= diff;
if (coneOfColdTimer < diff)
{
DoCast(me->GetVictim(), SPELL_CONE_OF_COLD);
DoCastVictim(SPELL_CONE_OF_COLD);
coneOfColdTimer = urand(10 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
} else coneOfColdTimer -= diff;
if (fireBoltTimer < diff)
{
DoCast(me->GetVictim(), SPELL_FIREBALL);
DoCastVictim(SPELL_FIREBALL);
fireBoltTimer = urand(5 * IN_MILLISECONDS, 9 * IN_MILLISECONDS);
} else fireBoltTimer -= diff;
if (frostboltTimer < diff)
{
DoCast(me->GetVictim(), SPELL_FROSTBOLT);
DoCastVictim(SPELL_FROSTBOLT);
frostboltTimer = urand(4 * IN_MILLISECONDS, 12 * IN_MILLISECONDS);
} else frostboltTimer -= diff;
@@ -82,25 +82,25 @@ public:
if (WhirlwindTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_WHIRLWIND);
DoCastVictim(SPELL_WHIRLWIND);
WhirlwindTimer = urand(8 * IN_MILLISECONDS, 18 * IN_MILLISECONDS);
} else WhirlwindTimer -= diff;
if (Whirlwind2Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_WHIRLWIND2);
DoCastVictim(SPELL_WHIRLWIND2);
Whirlwind2Timer = urand(7 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
} else Whirlwind2Timer -= diff;
if (KnockdownTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_KNOCKDOWN);
DoCastVictim(SPELL_KNOCKDOWN);
KnockdownTimer = urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
} else KnockdownTimer -= diff;
if (FrenzyTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_FRENZY);
DoCastVictim(SPELL_FRENZY);
FrenzyTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
} else FrenzyTimer -= diff;
@@ -76,31 +76,31 @@ public:
if (CleaveTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
CleaveTimer = urand(10 * IN_MILLISECONDS, 16 * IN_MILLISECONDS);
} else CleaveTimer -= diff;
if (FrighteningShoutTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_FRIGHTENING_SHOUT);
DoCastVictim(SPELL_FRIGHTENING_SHOUT);
FrighteningShoutTimer = urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
} else FrighteningShoutTimer -= diff;
if (Whirlwind1Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_WHIRLWIND1);
DoCastVictim(SPELL_WHIRLWIND1);
Whirlwind1Timer = urand(6 * IN_MILLISECONDS, 10 * IN_MILLISECONDS);
} else Whirlwind1Timer -= diff;
if (Whirlwind2Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_WHIRLWIND2);
DoCastVictim(SPELL_WHIRLWIND2);
Whirlwind2Timer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
} else Whirlwind2Timer -= diff;
if (MortalStrikeTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_MORTAL_STRIKE);
DoCastVictim(SPELL_MORTAL_STRIKE);
MortalStrikeTimer = urand(10 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
} else MortalStrikeTimer -= diff;
@@ -71,19 +71,19 @@ public:
if (AvatarTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_AVATAR);
DoCastVictim(SPELL_AVATAR);
AvatarTimer = urand(15 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
} else AvatarTimer -= diff;
if (ThunderclapTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_THUNDERCLAP);
DoCastVictim(SPELL_THUNDERCLAP);
ThunderclapTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
} else ThunderclapTimer -= diff;
if (StormboltTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_STORMBOLT);
DoCastVictim(SPELL_STORMBOLT);
StormboltTimer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
} else StormboltTimer -= diff;
@@ -381,7 +381,7 @@ public:
//ThunderClap_Timer
if (ThunderClap_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_THUNDERCLAP);
DoCastVictim(SPELL_THUNDERCLAP);
ThunderClap_Timer = 10000;
} else ThunderClap_Timer -= diff;
@@ -390,7 +390,7 @@ public:
{
if (FireballVolley_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FIREBALLVOLLEY);
DoCastVictim(SPELL_FIREBALLVOLLEY);
FireballVolley_Timer = 15000;
} else FireballVolley_Timer -= diff;
}
@@ -398,7 +398,7 @@ public:
//MightyBlow_Timer
if (MightyBlow_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_MIGHTYBLOW);
DoCastVictim(SPELL_MIGHTYBLOW);
MightyBlow_Timer = 10000;
} else MightyBlow_Timer -= diff;
@@ -64,7 +64,7 @@ public:
//FireBlast_Timer
if (FireBlast_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FIREBLAST);
DoCastVictim(SPELL_FIREBLAST);
FireBlast_Timer = 7000;
} else FireBlast_Timer -= diff;
@@ -68,7 +68,7 @@ public:
//ShadowBolt_Timer
if (ShadowBolt_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHADOWBOLT);
DoCastVictim(SPELL_SHADOWBOLT);
ShadowBolt_Timer = 7000;
} else ShadowBolt_Timer -= diff;
@@ -83,7 +83,7 @@ public:
//CurseOfWeakness_Timer
if (CurseOfWeakness_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CURSEOFWEAKNESS);
DoCastVictim(SPELL_CURSEOFWEAKNESS);
CurseOfWeakness_Timer = 45000;
} else CurseOfWeakness_Timer -= diff;
@@ -108,7 +108,7 @@ public:
//AvatarOfFlame_Timer
if (AvatarOfFlame_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_AVATAROFFLAME);
DoCastVictim(SPELL_AVATAROFFLAME);
AvatarOfFlame_Timer = 18000;
} else AvatarOfFlame_Timer -= diff;
@@ -78,21 +78,21 @@ public:
//MightyBlow_Timer
if (MightyBlow_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_MIGHTYBLOW);
DoCastVictim(SPELL_MIGHTYBLOW);
MightyBlow_Timer = 18000;
} else MightyBlow_Timer -= diff;
//HamString_Timer
if (HamString_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_HAMSTRING);
DoCastVictim(SPELL_HAMSTRING);
HamString_Timer = 15000;
} else HamString_Timer -= diff;
//Cleave_Timer
if (Cleave_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
Cleave_Timer = 9000;
} else Cleave_Timer -= diff;
@@ -68,7 +68,7 @@ public:
//MortalStrike_Timer
if (MortalStrike_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_MORTALSTRIKE);
DoCastVictim(SPELL_MORTALSTRIKE);
MortalStrike_Timer = 15000;
} else MortalStrike_Timer -= diff;
@@ -60,7 +60,7 @@ public:
//GroundTremor_Timer
if (GroundTremor_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_GROUNDTREMOR);
DoCastVictim(SPELL_GROUNDTREMOR);
GroundTremor_Timer = 8000;
} else GroundTremor_Timer -= diff;
@@ -81,7 +81,7 @@ public:
//PsychicScream_Timer
if (PsychicScream_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_PSYCHICSCREAM);
DoCastVictim(SPELL_PSYCHICSCREAM);
PsychicScream_Timer = 30000;
} else PsychicScream_Timer -= diff;
@@ -64,7 +64,7 @@ public:
//FieryBurst_Timer
if (FieryBurst_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FIERYBURST);
DoCastVictim(SPELL_FIERYBURST);
FieryBurst_Timer = 6000;
} else FieryBurst_Timer -= diff;
@@ -73,7 +73,7 @@ public:
{
if (WarStomp_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_WARSTOMP);
DoCastVictim(SPELL_WARSTOMP);
WarStomp_Timer = 8000;
} else WarStomp_Timer -= diff;
}
@@ -67,21 +67,21 @@ public:
//MindBlast_Timer
if (MindBlast_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_MINDBLAST);
DoCastVictim(SPELL_MINDBLAST);
MindBlast_Timer = 14000;
} else MindBlast_Timer -= diff;
//ShadowWordPain_Timer
if (ShadowWordPain_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHADOWWORDPAIN);
DoCastVictim(SPELL_SHADOWWORDPAIN);
ShadowWordPain_Timer = 18000;
} else ShadowWordPain_Timer -= diff;
//Smite_Timer
if (Smite_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SMITE);
DoCastVictim(SPELL_SMITE);
Smite_Timer = 10000;
} else Smite_Timer -= diff;
}
@@ -210,7 +210,7 @@ public:
//ShadowVolley_Timer
if (ShadowVolley_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHADOWBOLTVOLLEY);
DoCastVictim(SPELL_SHADOWBOLTVOLLEY);
ShadowVolley_Timer = 12000;
} else ShadowVolley_Timer -= diff;
@@ -226,7 +226,7 @@ public:
//CurseOfWeakness_Timer
if (CurseOfWeakness_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CURSEOFWEAKNESS);
DoCastVictim(SPELL_CURSEOFWEAKNESS);
CurseOfWeakness_Timer = 45000;
} else CurseOfWeakness_Timer -= diff;
@@ -240,7 +240,7 @@ public:
//Summon Voidwalkers
if (!Voidwalkers && HealthBelowPct(51))
{
DoCast(me->GetVictim(), SPELL_SUMMON_VOIDWALKERS, true);
DoCastVictim(SPELL_SUMMON_VOIDWALKERS, true);
Voidwalkers = true;
}
@@ -84,19 +84,19 @@ public:
switch (eventId)
{
case EVENT_FIRE_NOVA:
DoCast(me->GetVictim(), SPELL_FIRENOVA);
DoCastVictim(SPELL_FIRENOVA);
events.ScheduleEvent(EVENT_FIRE_NOVA, 10 * IN_MILLISECONDS);
break;
case EVENT_CLEAVE:
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
events.ScheduleEvent(EVENT_CLEAVE, 8 * IN_MILLISECONDS);
break;
case EVENT_CONFLIGURATION:
DoCast(me->GetVictim(), SPELL_CONFLIGURATION);
DoCastVictim(SPELL_CONFLIGURATION);
events.ScheduleEvent(EVENT_CONFLIGURATION, 18 * IN_MILLISECONDS);
break;
case EVENT_THUNDERCLAP:
DoCast(me->GetVictim(), SPELL_THUNDERCLAP);
DoCastVictim(SPELL_THUNDERCLAP);
events.ScheduleEvent(EVENT_THUNDERCLAP, 20 * IN_MILLISECONDS);
break;
}
@@ -151,15 +151,15 @@ public:
events.CancelEvent(EVENT_SUMMON_ORC_PACK);
break;
case EVENT_CORROSIVE_ACID:
DoCast(me->GetVictim(), SPELL_CORROSIVE_ACID);
DoCastVictim(SPELL_CORROSIVE_ACID);
events.ScheduleEvent(EVENT_CORROSIVE_ACID, 7 * IN_MILLISECONDS);
break;
case EVENT_FREEZE:
DoCast(me->GetVictim(), SPELL_FREEZE);
DoCastVictim(SPELL_FREEZE);
events.ScheduleEvent(EVENT_FREEZE, 16 * IN_MILLISECONDS);
break;
case EVENT_FLAME_BREATH:
DoCast(me->GetVictim(), SPELL_FLAMEBREATH);
DoCastVictim(SPELL_FLAMEBREATH);
events.ScheduleEvent(EVENT_FLAME_BREATH, 10500);
break;
}
@@ -90,11 +90,11 @@ public:
switch (eventId)
{
case EVENT_CROWD_PUMMEL:
DoCast(me->GetVictim(), SPELL_CROWDPUMMEL);
DoCastVictim(SPELL_CROWDPUMMEL);
events.ScheduleEvent(EVENT_CROWD_PUMMEL, 14 * IN_MILLISECONDS);
break;
case EVENT_MIGHTY_BLOW:
DoCast(me->GetVictim(), SPELL_MIGHTYBLOW);
DoCastVictim(SPELL_MIGHTYBLOW);
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 10 * IN_MILLISECONDS);
break;
}
@@ -93,31 +93,31 @@ public:
switch (eventId)
{
case EVENT_WARSTOMP:
DoCast(me->GetVictim(), SPELL_WARSTOMP);
DoCastVictim(SPELL_WARSTOMP);
events.ScheduleEvent(EVENT_WARSTOMP, 14 * IN_MILLISECONDS);
break;
case EVENT_CLEAVE:
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
events.ScheduleEvent(EVENT_CLEAVE, 8 * IN_MILLISECONDS);
break;
case EVENT_STRIKE:
DoCast(me->GetVictim(), SPELL_STRIKE);
DoCastVictim(SPELL_STRIKE);
events.ScheduleEvent(EVENT_STRIKE, 10 * IN_MILLISECONDS);
break;
case EVENT_REND:
DoCast(me->GetVictim(), SPELL_REND);
DoCastVictim(SPELL_REND);
events.ScheduleEvent(EVENT_REND, 18 * IN_MILLISECONDS);
break;
case EVENT_SUNDER_ARMOR:
DoCast(me->GetVictim(), SPELL_SUNDERARMOR);
DoCastVictim(SPELL_SUNDERARMOR);
events.ScheduleEvent(EVENT_SUNDER_ARMOR, 25 * IN_MILLISECONDS);
break;
case EVENT_KNOCK_AWAY:
DoCast(me->GetVictim(), SPELL_KNOCKAWAY);
DoCastVictim(SPELL_KNOCKAWAY);
events.ScheduleEvent(EVENT_KNOCK_AWAY, 12 * IN_MILLISECONDS);
break;
case EVENT_SLOW:
DoCast(me->GetVictim(), SPELL_SLOW);
DoCastVictim(SPELL_SLOW);
events.ScheduleEvent(EVENT_SLOW, 18 * IN_MILLISECONDS);
break;
}
@@ -108,19 +108,19 @@ public:
switch (eventId)
{
case EVENT_BLAST_WAVE:
DoCast(me->GetVictim(), SPELL_BLASTWAVE);
DoCastVictim(SPELL_BLASTWAVE);
events.ScheduleEvent(EVENT_BLAST_WAVE, 20 * IN_MILLISECONDS);
break;
case EVENT_SHOUT:
DoCast(me->GetVictim(), SPELL_SHOUT);
DoCastVictim(SPELL_SHOUT);
events.ScheduleEvent(EVENT_SHOUT, 10 * IN_MILLISECONDS);
break;
case EVENT_CLEAVE:
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
events.ScheduleEvent(EVENT_CLEAVE, 7 * IN_MILLISECONDS);
break;
case EVENT_KNOCK_AWAY:
DoCast(me->GetVictim(), SPELL_KNOCKAWAY);
DoCastVictim(SPELL_KNOCKAWAY);
events.ScheduleEvent(EVENT_KNOCK_AWAY, 14 * IN_MILLISECONDS);
break;
}
@@ -80,11 +80,11 @@ public:
switch (eventId)
{
case EVENT_SHOOT:
DoCast(me->GetVictim(), SPELL_SHOOT);
DoCastVictim(SPELL_SHOOT);
events.ScheduleEvent(EVENT_SHOOT, 500);
break;
case EVENT_STUN_BOMB:
DoCast(me->GetVictim(), SPELL_STUNBOMB);
DoCastVictim(SPELL_STUNBOMB);
events.ScheduleEvent(EVENT_STUN_BOMB, 14 * IN_MILLISECONDS);
break;
}
@@ -81,15 +81,15 @@ public:
switch (eventId)
{
case EVENT_WHIRLWIND:
DoCast(me->GetVictim(), SPELL_WHIRLWIND);
DoCastVictim(SPELL_WHIRLWIND);
events.ScheduleEvent(EVENT_WHIRLWIND, 18 * IN_MILLISECONDS);
break;
case EVENT_CLEAVE:
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
events.ScheduleEvent(EVENT_CLEAVE, 10 * IN_MILLISECONDS);
break;
case EVENT_THUNDERCLAP:
DoCast(me->GetVictim(), SPELL_THUNDERCLAP);
DoCastVictim(SPELL_THUNDERCLAP);
events.ScheduleEvent(EVENT_THUNDERCLAP, 16 * IN_MILLISECONDS);
break;
}
@@ -82,7 +82,7 @@ public:
switch (eventId)
{
case EVENT_CURSE_OF_BLOOD:
DoCast(me->GetVictim(), SPELL_CURSEOFBLOOD);
DoCastVictim(SPELL_CURSEOFBLOOD);
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 45 * IN_MILLISECONDS);
break;
case EVENT_HEX:
@@ -91,7 +91,7 @@ public:
events.ScheduleEvent(EVENT_HEX, 15 * IN_MILLISECONDS);
break;
case EVENT_CLEAVE:
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
events.ScheduleEvent(EVENT_CLEAVE, 7 * IN_MILLISECONDS);
break;
}
@@ -81,7 +81,7 @@ public:
switch (eventId)
{
case EVENT_FLAME_BREAK:
DoCast(me->GetVictim(), SPELL_FLAMEBREAK);
DoCastVictim(SPELL_FLAMEBREAK);
events.ScheduleEvent(EVENT_FLAME_BREAK, 10 * IN_MILLISECONDS);
break;
case EVENT_IMMOLATE:
@@ -90,7 +90,7 @@ public:
events.ScheduleEvent(EVENT_IMMOLATE, 8 * IN_MILLISECONDS);
break;
case EVENT_TERRIFYING_ROAR:
DoCast(me->GetVictim(), SPELL_TERRIFYINGROAR);
DoCastVictim(SPELL_TERRIFYINGROAR);
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 20 * IN_MILLISECONDS);
break;
}
@@ -90,27 +90,27 @@ public:
switch (eventId)
{
case EVENT_SNAP_KICK:
DoCast(me->GetVictim(), SPELL_SNAPKICK);
DoCastVictim(SPELL_SNAPKICK);
events.ScheduleEvent(EVENT_SNAP_KICK, 6 * IN_MILLISECONDS);
break;
case EVENT_CLEAVE:
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
events.ScheduleEvent(EVENT_CLEAVE, 12 * IN_MILLISECONDS);
break;
case EVENT_UPPERCUT:
DoCast(me->GetVictim(), SPELL_UPPERCUT);
DoCastVictim(SPELL_UPPERCUT);
events.ScheduleEvent(EVENT_UPPERCUT, 14 * IN_MILLISECONDS);
break;
case EVENT_MORTAL_STRIKE:
DoCast(me->GetVictim(), SPELL_MORTALSTRIKE);
DoCastVictim(SPELL_MORTALSTRIKE);
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 10 * IN_MILLISECONDS);
break;
case EVENT_PUMMEL:
DoCast(me->GetVictim(), SPELL_PUMMEL);
DoCastVictim(SPELL_PUMMEL);
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 16 * IN_MILLISECONDS);
break;
case EVENT_THROW_AXE:
DoCast(me->GetVictim(), SPELL_THROWAXE);
DoCastVictim(SPELL_THROWAXE);
events.ScheduleEvent(EVENT_THROW_AXE, 8 * IN_MILLISECONDS);
break;
}
@@ -226,14 +226,14 @@ public:
//Breath1_Timer
if (Breath1_Timer <= diff)
{
DoCast(me->GetVictim(), Breath1_Spell);
DoCastVictim(Breath1_Spell);
Breath1_Timer = 60000;
} else Breath1_Timer -= diff;
//Breath2_Timer
if (Breath2_Timer <= diff)
{
DoCast(me->GetVictim(), Breath2_Spell);
DoCastVictim(Breath2_Spell);
Breath2_Timer = 60000;
} else Breath2_Timer -= diff;
@@ -138,28 +138,28 @@ public:
//ShadowFlame_Timer
if (ShadowFlame_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHADOWFLAME);
DoCastVictim(SPELL_SHADOWFLAME);
ShadowFlame_Timer = 12000;
} else ShadowFlame_Timer -= diff;
//BellowingRoar_Timer
if (BellowingRoar_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_BELLOWINGROAR);
DoCastVictim(SPELL_BELLOWINGROAR);
BellowingRoar_Timer = 30000;
} else BellowingRoar_Timer -= diff;
//VeilOfShadow_Timer
if (VeilOfShadow_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_VEILOFSHADOW);
DoCastVictim(SPELL_VEILOFSHADOW);
VeilOfShadow_Timer = 15000;
} else VeilOfShadow_Timer -= diff;
//Cleave_Timer
if (Cleave_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
Cleave_Timer = 7000;
} else Cleave_Timer -= diff;
@@ -167,7 +167,7 @@ public:
if (TailLash_Timer <= diff)
{
//Cast NYI since we need a better check for behind target
//DoCast(me->GetVictim(), SPELL_TAILLASH);
//DoCastVictim(SPELL_TAILLASH);
TailLash_Timer = 10000;
} else TailLash_Timer -= diff;
@@ -89,28 +89,28 @@ public:
//Cleave_Timer
if (Cleave_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
Cleave_Timer = urand(7000, 10000);
} else Cleave_Timer -= diff;
//WarStomp_Timer
if (WarStomp_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_WARSTOMP);
DoCastVictim(SPELL_WARSTOMP);
WarStomp_Timer = urand(15000, 25000);
} else WarStomp_Timer -= diff;
//FireballVolley_Timer
if (FireballVolley_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FIREBALLVOLLEY);
DoCastVictim(SPELL_FIREBALLVOLLEY);
FireballVolley_Timer = urand(12000, 15000);
} else FireballVolley_Timer -= diff;
//Conflagration_Timer
if (Conflagration_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CONFLAGRATION);
DoCastVictim(SPELL_CONFLAGRATION);
//We will remove this threat reduction and add an aura check.
//if (DoGetThreat(me->GetVictim()))
@@ -205,14 +205,14 @@ public:
//Cleave_Timer
if (Cleave_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
Cleave_Timer = 15000;
} else Cleave_Timer -= diff;
//FlameBreath_Timer
if (FlameBreath_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FLAMEBREATH);
DoCastVictim(SPELL_FLAMEBREATH);
FlameBreath_Timer = urand(4000, 8000);
} else FlameBreath_Timer -= diff;
@@ -248,7 +248,7 @@ public:
//FireNova_Timer
if (FireNova_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FIRENOVA);
DoCastVictim(SPELL_FIRENOVA);
FireNova_Timer = 5000;
} else FireNova_Timer -= diff;
@@ -258,7 +258,7 @@ public:
//Only cast if we are behind
/*if (!me->HasInArc(M_PI, me->GetVictim()))
{
DoCast(me->GetVictim(), SPELL_TAILSWIPE);
DoCastVictim(SPELL_TAILSWIPE);
}*/
TailSwipe_Timer = 20000;
@@ -110,7 +110,7 @@ public:
if (uiSlamTimer <= uiDiff)
{
if (bCheckChances())
DoCast(me->GetVictim(), SPELL_SMITE_SLAM);
DoCastVictim(SPELL_SMITE_SLAM);
uiSlamTimer = 11000;
} else uiSlamTimer -= uiDiff;
@@ -108,7 +108,7 @@ public:
if (Repentance_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_REPENTANCE);
DoCastVictim(SPELL_REPENTANCE);
Talk(SAY_REPENTANCE);
Repentance_Timer = urand(25000, 35000); //A little randomness on that spell
@@ -262,13 +262,13 @@ void boss_attumen::boss_attumenAI::UpdateAI(uint32 diff)
if (CleaveTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHADOWCLEAVE);
DoCastVictim(SPELL_SHADOWCLEAVE);
CleaveTimer = urand(10000, 15000);
} else CleaveTimer -= diff;
if (CurseTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_INTANGIBLE_PRESENCE);
DoCastVictim(SPELL_INTANGIBLE_PRESENCE);
CurseTimer = 30000;
} else CurseTimer -= diff;
@@ -430,7 +430,7 @@ public:
if (MindFlay_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_MINDFLY);
DoCastVictim(SPELL_MINDFLY);
MindFlay_Timer = 12000; // 3 sec channeled
} else MindFlay_Timer -= diff;
@@ -498,13 +498,13 @@ public:
if (JudgementOfCommand_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_JUDGEMENTOFCOMMAND);
DoCastVictim(SPELL_JUDGEMENTOFCOMMAND);
JudgementOfCommand_Timer = SealOfCommand_Timer + 29000;
} else JudgementOfCommand_Timer -= diff;
if (HammerOfJustice_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_HAMMEROFJUSTICE);
DoCastVictim(SPELL_HAMMEROFJUSTICE);
HammerOfJustice_Timer = 12000;
} else HammerOfJustice_Timer -= diff;
}
@@ -566,7 +566,7 @@ public:
if (HolyFire_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_HOLYFIRE);
DoCastVictim(SPELL_HOLYFIRE);
HolyFire_Timer = 22000;
} else HolyFire_Timer -= diff;
@@ -692,13 +692,13 @@ public:
if (Hamstring_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_HAMSTRING);
DoCastVictim(SPELL_HAMSTRING);
Hamstring_Timer = 12000;
} else Hamstring_Timer -= diff;
if (MortalStrike_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_MORTALSTRIKE);
DoCastVictim(SPELL_MORTALSTRIKE);
MortalStrike_Timer = 18000;
} else MortalStrike_Timer -= diff;
@@ -750,19 +750,19 @@ public:
if (Disarm_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_DISARM);
DoCastVictim(SPELL_DISARM);
Disarm_Timer = 12000;
} else Disarm_Timer -= diff;
if (HeroicStrike_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_HEROICSTRIKE);
DoCastVictim(SPELL_HEROICSTRIKE);
HeroicStrike_Timer = 10000;
} else HeroicStrike_Timer -= diff;
if (ShieldBash_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHIELDBASH);
DoCastVictim(SPELL_SHIELDBASH);
ShieldBash_Timer = 13000;
} else ShieldBash_Timer -= diff;
@@ -315,13 +315,13 @@ public:
if (BellowingRoarTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_BELLOWING_ROAR);
DoCastVictim(SPELL_BELLOWING_ROAR);
BellowingRoarTimer = urand(30000, 40000);
} else BellowingRoarTimer -= diff;
if (SmolderingBreathTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_SMOLDERING_BREATH);
DoCastVictim(SPELL_SMOLDERING_BREATH);
SmolderingBreathTimer = 20000;
} else SmolderingBreathTimer -= diff;
@@ -370,14 +370,14 @@ public:
{
for (uint8 i = 0; i <= 3; ++i)
{
DoCast(me->GetVictim(), SPELL_SUMMON_SKELETON);
DoCastVictim(SPELL_SUMMON_SKELETON);
Skeletons = true;
}
}
if (RainofBonesTimer < diff && !RainBones) // only once at the beginning of phase 2
{
DoCast(me->GetVictim(), SPELL_RAIN_OF_BONES);
DoCastVictim(SPELL_RAIN_OF_BONES);
RainBones = true;
SmokingBlastTimer = 20000;
} else RainofBonesTimer -= diff;
@@ -394,7 +394,7 @@ public:
{
if (SmokingBlastTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_SMOKING_BLAST);
DoCastVictim(SPELL_SMOKING_BLAST);
SmokingBlastTimer = 1500; //timer wrong
} else SmokingBlastTimer -= diff;
}
@@ -480,13 +480,13 @@ public:
if (SunderArmorTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_SUNDER_ARMOR);
DoCastVictim(SPELL_SUNDER_ARMOR);
SunderArmorTimer = urand(10000, 18000);
} else SunderArmorTimer -= diff;
if (Cleave_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
Cleave_Timer = urand(6000, 12000);
} else Cleave_Timer -= diff;
}
@@ -530,7 +530,7 @@ public:
if (ShadowNovaTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHADOWNOVA);
DoCastVictim(SPELL_SHADOWNOVA);
ShadowNovaTimer = phase == 3 ? 31000 : uint32(-1);
} else ShadowNovaTimer -= diff;
@@ -538,7 +538,7 @@ public:
if (CastTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_WATERBOLT);
DoCastVictim(SPELL_WATERBOLT);
CastTimer = urand(2000, 5000);
} else CastTimer -= diff;
}
@@ -120,7 +120,7 @@ public:
if (AmplifyTimer <= diff)
{
me->InterruptNonMeleeSpells(false);
DoCast(me->GetVictim(), SPELL_AMPLIFY_FLAMES);
DoCastVictim(SPELL_AMPLIFY_FLAMES);
AmplifyTimer = urand(10000, 20000);
} else AmplifyTimer -= diff;
@@ -236,7 +236,7 @@ public:
if (FireboltTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_FIREBOLT);
DoCastVictim(SPELL_FIREBOLT);
FireboltTimer = 2200;
} else FireboltTimer -= diff;
@@ -394,10 +394,10 @@ public:
if (SummonTimer <= diff)
{
if (!PortalGUID[0])
DoCast(me->GetVictim(), SPELL_FIENDISH_PORTAL, false);
DoCastVictim(SPELL_FIENDISH_PORTAL, false);
if (!PortalGUID[1])
DoCast(me->GetVictim(), SPELL_FIENDISH_PORTAL_1, false);
DoCastVictim(SPELL_FIENDISH_PORTAL_1, false);
if (PortalGUID[0] && PortalGUID[1])
{
@@ -209,7 +209,7 @@ public:
if (FearTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_SCREAM);
DoCastVictim(SPELL_SCREAM);
FearTimer = 30000;
} else FearTimer -= diff;
@@ -270,7 +270,7 @@ public:
if (YipTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_YIPPING);
DoCastVictim(SPELL_YIPPING);
YipTimer = 10000;
} else YipTimer -= diff;
@@ -389,7 +389,7 @@ public:
if (BrainBashTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_BRAIN_BASH);
DoCastVictim(SPELL_BRAIN_BASH);
BrainBashTimer = 15000;
} else BrainBashTimer -= diff;
@@ -494,7 +494,7 @@ public:
if (CleaveTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
CleaveTimer = 5000;
} else CleaveTimer -= diff;
@@ -601,19 +601,19 @@ public:
if (MangleTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_MANGLE);
DoCastVictim(SPELL_MANGLE);
MangleTimer = urand(5000, 8000);
} else MangleTimer -= diff;
if (ShredTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHRED);
DoCastVictim(SPELL_SHRED);
ShredTimer = urand(10000, 15000);
} else ShredTimer -= diff;
if (ScreamTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_FRIGHTENED_SCREAM);
DoCastVictim(SPELL_FRIGHTENED_SCREAM);
ScreamTimer = urand(20000, 30000);
} else ScreamTimer -= diff;
@@ -699,7 +699,7 @@ public:
if (ChainLightningTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_CHAIN_LIGHTNING);
DoCastVictim(SPELL_CHAIN_LIGHTNING);
ChainLightningTimer = 15000;
} else ChainLightningTimer -= diff;
@@ -917,13 +917,13 @@ public:
if (FearTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_TERRIFYING_HOWL);
DoCastVictim(SPELL_TERRIFYING_HOWL);
FearTimer = urand(25000, 35000);
} else FearTimer -= diff;
if (SwipeTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_WIDE_SWIPE);
DoCastVictim(SPELL_WIDE_SWIPE);
SwipeTimer = urand(25000, 30000);
} else SwipeTimer -= diff;
}
@@ -1322,7 +1322,7 @@ public:
if (PoisonThrustTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_POISON_THRUST);
DoCastVictim(SPELL_POISON_THRUST);
PoisonThrustTimer = urand(10000, 20000);
} else PoisonThrustTimer -= diff;
@@ -298,14 +298,14 @@ public:
me->InterruptSpell(CURRENT_CHANNELED_SPELL);
me->InterruptSpell(CURRENT_GENERIC_SPELL);
DoCast(me, SPELL_SHOCK_BARRIER, true);
DoCast(me->GetVictim(), SPELL_PYROBLAST);
DoCastVictim(SPELL_PYROBLAST);
PyroblastTimer = 60000;
} else PyroblastTimer -= diff;
}
if (FireballTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_FIREBALL_NORMAL);
DoCastVictim(SPELL_FIREBALL_NORMAL);
FireballTimer = urand(2000, 6000);
} else FireballTimer -= diff;
@@ -544,8 +544,8 @@ public:
{
if (Wait_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_BACKSTAB, true);
DoCast(me->GetVictim(), SPELL_KIDNEY_SHOT, true);
DoCastVictim(SPELL_BACKSTAB, true);
DoCastVictim(SPELL_KIDNEY_SHOT, true);
me->SetVisible(true); // ...? Hacklike
InVanish = false;
} else Wait_Timer -= diff;
@@ -553,19 +553,19 @@ public:
if (Gouge_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_GOUGE);
DoCastVictim(SPELL_GOUGE);
Gouge_Timer = 5500;
} else Gouge_Timer -= diff;
if (Kick_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_KICK);
DoCastVictim(SPELL_KICK);
Kick_Timer = 7000;
} else Kick_Timer -= diff;
if (Eviscerate_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_EVISCERATE);
DoCastVictim(SPELL_EVISCERATE);
Eviscerate_Timer = 4000;
} else Eviscerate_Timer -= diff;
@@ -632,13 +632,13 @@ public:
if (Immolate_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_IMMOLATE);
DoCastVictim(SPELL_IMMOLATE);
Immolate_Timer = 6000;
} else Immolate_Timer -= diff;
if (Shadow_Bolt_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHADOW_BOLT);
DoCastVictim(SPELL_SHADOW_BOLT);
Shadow_Bolt_Timer = 5000;
} else Shadow_Bolt_Timer -= diff;
@@ -712,13 +712,13 @@ public:
if (Knockdown_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_KNOCKDOWN);
DoCastVictim(SPELL_KNOCKDOWN);
Knockdown_Timer = 6000;
} else Knockdown_Timer -= diff;
if (Snap_Kick_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SNAP_KICK);
DoCastVictim(SPELL_SNAP_KICK);
Snap_Kick_Timer = 4500;
} else Snap_Kick_Timer -= diff;
@@ -812,19 +812,19 @@ public:
if (Ice_Lance_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_ICE_LANCE);
DoCastVictim(SPELL_ICE_LANCE);
Ice_Lance_Timer = 12000;
} else Ice_Lance_Timer -= diff;
if (Cone_of_Cold_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CONE_OF_COLD);
DoCastVictim(SPELL_CONE_OF_COLD);
Cone_of_Cold_Timer = 10000;
} else Cone_of_Cold_Timer -= diff;
if (Frostbolt_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FROSTBOLT);
DoCastVictim(SPELL_FROSTBOLT);
Frostbolt_Timer = 8000;
} else Frostbolt_Timer -= diff;
@@ -943,31 +943,31 @@ public:
if (Disarm_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_DISARM);
DoCastVictim(SPELL_DISARM);
Disarm_Timer = 6000;
} else Disarm_Timer -= diff;
if (Hamstring_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_HAMSTRING);
DoCastVictim(SPELL_HAMSTRING);
Hamstring_Timer = 4500;
} else Hamstring_Timer -= diff;
if (Mortal_Strike_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_MORTAL_STRIKE);
DoCastVictim(SPELL_MORTAL_STRIKE);
Mortal_Strike_Timer = 4500;
} else Mortal_Strike_Timer -= diff;
if (Piercing_Howl_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_PIERCING_HOWL);
DoCastVictim(SPELL_PIERCING_HOWL);
Piercing_Howl_Timer = 10000;
} else Piercing_Howl_Timer -= diff;
if (Frightening_Shout_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FRIGHTENING_SHOUT);
DoCastVictim(SPELL_FRIGHTENING_SHOUT);
Frightening_Shout_Timer = 18000;
} else Frightening_Shout_Timer -= diff;
@@ -1047,7 +1047,7 @@ public:
{
if (Wing_Clip_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_WING_CLIP);
DoCastVictim(SPELL_WING_CLIP);
Wing_Clip_Timer = 4000;
} else Wing_Clip_Timer -= diff;
@@ -1062,7 +1062,7 @@ public:
else
{
//if go does not exist, then we can cast
DoCast(me->GetVictim(), SPELL_FREEZING_TRAP);
DoCastVictim(SPELL_FREEZING_TRAP);
Freezing_Trap_Timer = 15000;
}
} else Freezing_Trap_Timer -= diff;
@@ -1073,25 +1073,25 @@ public:
{
if (Concussive_Shot_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CONCUSSIVE_SHOT);
DoCastVictim(SPELL_CONCUSSIVE_SHOT);
Concussive_Shot_Timer = 8000;
} else Concussive_Shot_Timer -= diff;
if (Multi_Shot_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_MULTI_SHOT);
DoCastVictim(SPELL_MULTI_SHOT);
Multi_Shot_Timer = 10000;
} else Multi_Shot_Timer -= diff;
if (Aimed_Shot_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_AIMED_SHOT);
DoCastVictim(SPELL_AIMED_SHOT);
Aimed_Shot_Timer = 6000;
} else Aimed_Shot_Timer -= diff;
if (Shoot_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHOOT);
DoCastVictim(SPELL_SHOOT);
Shoot_Timer = 2500;
} else Shoot_Timer -= diff;
}
@@ -1174,7 +1174,7 @@ public:
if (Frost_Shock_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FROST_SHOCK);
DoCastVictim(SPELL_FROST_SHOCK);
Frost_Shock_Timer = 7000;
} else Frost_Shock_Timer -= diff;
@@ -1249,19 +1249,19 @@ public:
if (Goblin_Dragon_Gun_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_GOBLIN_DRAGON_GUN);
DoCastVictim(SPELL_GOBLIN_DRAGON_GUN);
Goblin_Dragon_Gun_Timer = 10000;
} else Goblin_Dragon_Gun_Timer -= diff;
if (Rocket_Launch_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_ROCKET_LAUNCH);
DoCastVictim(SPELL_ROCKET_LAUNCH);
Rocket_Launch_Timer = 9000;
} else Rocket_Launch_Timer -= diff;
if (Fel_Iron_Bomb_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FEL_IRON_BOMB);
DoCastVictim(SPELL_FEL_IRON_BOMB);
Fel_Iron_Bomb_Timer = 15000;
} else Fel_Iron_Bomb_Timer -= diff;
@@ -185,7 +185,7 @@ public:
{
if (OverloadTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_OVERLOAD);
DoCastVictim(SPELL_OVERLOAD);
OverloadTimer = 2000;
} else OverloadTimer -= diff;
@@ -163,7 +163,7 @@ class mob_core_rager : public CreatureScript
// Mangle
if (mangleTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_MANGLE);
DoCastVictim(SPELL_MANGLE);
mangleTimer = 10*IN_MILLISECONDS;
}
else
@@ -245,22 +245,22 @@ public:
switch (eventId)
{
case EVENT_ICY_TOUCH:
DoCast(me->GetVictim(), SPELL_ICY_TOUCH);
DoCastVictim(SPELL_ICY_TOUCH);
events.DelayEvents(1000, GCD_CAST);
events.ScheduleEvent(EVENT_ICY_TOUCH, 5000, GCD_CAST);
break;
case EVENT_PLAGUE_STRIKE:
DoCast(me->GetVictim(), SPELL_PLAGUE_STRIKE);
DoCastVictim(SPELL_PLAGUE_STRIKE);
events.DelayEvents(1000, GCD_CAST);
events.ScheduleEvent(SPELL_PLAGUE_STRIKE, 5000, GCD_CAST);
events.ScheduleEvent(EVENT_PLAGUE_STRIKE, 5000, GCD_CAST);
break;
case EVENT_BLOOD_STRIKE:
DoCast(me->GetVictim(), SPELL_BLOOD_STRIKE);
DoCastVictim(SPELL_BLOOD_STRIKE);
events.DelayEvents(1000, GCD_CAST);
events.ScheduleEvent(EVENT_BLOOD_STRIKE, 5000, GCD_CAST);
break;
case EVENT_DEATH_COIL:
DoCast(me->GetVictim(), SPELL_DEATH_COIL);
DoCastVictim(SPELL_DEATH_COIL);
events.DelayEvents(1000, GCD_CAST);
events.ScheduleEvent(EVENT_DEATH_COIL, 5000, GCD_CAST);
break;
@@ -498,14 +498,14 @@ public:
if (uiInquisitor_Penance_timer <= diff)
{
Shout();
DoCast(me->GetVictim(), SPELL_INQUISITOR_PENANCE);
DoCastVictim(SPELL_INQUISITOR_PENANCE);
uiInquisitor_Penance_timer = urand(2000, 7000);
} else uiInquisitor_Penance_timer -= diff;
if (uiValroth_Smite_timer <= diff)
{
Shout();
DoCast(me->GetVictim(), SPELL_VALROTH_SMITE);
DoCastVictim(SPELL_VALROTH_SMITE);
uiValroth_Smite_timer = urand(1000, 6000);
} else uiValroth_Smite_timer -= diff;
@@ -1343,25 +1343,25 @@ public:
if (uiDeath_strike <= diff)
{
DoCast(me->GetVictim(), SPELL_DEATH_STRIKE);
DoCastVictim(SPELL_DEATH_STRIKE);
uiDeath_strike = urand(5000, 10000);
} else uiDeath_strike -= diff;
if (uiDeath_embrace <= diff)
{
DoCast(me->GetVictim(), SPELL_DEATH_EMBRACE);
DoCastVictim(SPELL_DEATH_EMBRACE);
uiDeath_embrace = urand(5000, 10000);
} else uiDeath_embrace -= diff;
if (uiIcy_touch <= diff)
{
DoCast(me->GetVictim(), SPELL_ICY_TOUCH1);
DoCastVictim(SPELL_ICY_TOUCH1);
uiIcy_touch = urand(5000, 10000);
} else uiIcy_touch -= diff;
if (uiUnholy_blight <= diff)
{
DoCast(me->GetVictim(), SPELL_UNHOLY_BLIGHT);
DoCastVictim(SPELL_UNHOLY_BLIGHT);
uiUnholy_blight = urand(5000, 10000);
} else uiUnholy_blight -= diff;
@@ -112,7 +112,7 @@ public:
//AoESilence_Timer
if (AoESilence_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_AOESILENCE);
DoCastVictim(SPELL_AOESILENCE);
AoESilence_Timer = urand(15000, 20000);
}
else AoESilence_Timer -= diff;
@@ -120,7 +120,7 @@ public:
//ArcaneExplosion_Timer
if (ArcaneExplosion_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_ARCANEEXPLOSION);
DoCastVictim(SPELL_ARCANEEXPLOSION);
ArcaneExplosion_Timer = 8000;
}
else ArcaneExplosion_Timer -= diff;
@@ -71,7 +71,7 @@ public:
//SoulSiphon_Timer
if (SoulSiphon_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SOULSIPHON);
DoCastVictim(SPELL_SOULSIPHON);
return;
//SoulSiphon_Timer = 20000;
@@ -82,7 +82,7 @@ public:
//CallOfTheGrave_Timer
if (CallOftheGrave_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CALLOFTHEGRAVE);
DoCastVictim(SPELL_CALLOFTHEGRAVE);
CallOftheGrave_Timer = 30000;
}
else CallOftheGrave_Timer -= diff;
@@ -90,7 +90,7 @@ public:
//Terrify_Timer
if (Terrify_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_TERRIFY);
DoCastVictim(SPELL_TERRIFY);
Terrify_Timer = 20000;
}
else Terrify_Timer -= diff;
@@ -92,7 +92,7 @@ public:
//FlameShock_Timer
if (FlameShock_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FLAMESHOCK);
DoCastVictim(SPELL_FLAMESHOCK);
FlameShock_Timer = urand(10000, 15000);
}
else FlameShock_Timer -= diff;
@@ -100,7 +100,7 @@ public:
//FlameSpike_Timer
if (FlameSpike_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FLAMESPIKE);
DoCastVictim(SPELL_FLAMESPIKE);
FlameSpike_Timer = 30000;
}
else FlameSpike_Timer -= diff;
@@ -108,7 +108,7 @@ public:
//FireNova_Timer
if (FireNova_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FIRENOVA);
DoCastVictim(SPELL_FIRENOVA);
FireNova_Timer = 40000;
}
else FireNova_Timer -= diff;
@@ -116,7 +116,7 @@ public:
//ShadowBolt_Timer
if (ShadowBolt_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHADOWBOLT);
DoCastVictim(SPELL_SHADOWBOLT);
ShadowBolt_Timer = 2000;
}
else ShadowBolt_Timer -= diff;
@@ -731,7 +731,7 @@ public:
DoMeleeAttackIfReady();
if (cleave <= diff)
{
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
cleave = urand(2000, 6000); //1 cleave per 2.0f-6.0fsec
}
else cleave -= diff;
@@ -110,7 +110,7 @@ public:
//Cleave_Timer
if (Cleave_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
Cleave_Timer = 12000;
}
else Cleave_Timer -= diff;
@@ -119,7 +119,7 @@ public:
if (Whirlwind_Timer <= diff)
{
Talk(SAY_WHIRLWIND);
DoCast(me->GetVictim(), SPELL_WHIRLWIND);
DoCastVictim(SPELL_WHIRLWIND);
Whirlwind_Timer = 30000;
}
else Whirlwind_Timer -= diff;
@@ -130,7 +130,7 @@ public:
//CurseOfBlood_Timer
if (CurseOfBlood_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CURSEOFBLOOD);
DoCastVictim(SPELL_CURSEOFBLOOD);
CurseOfBlood_Timer = 25000;
}
else CurseOfBlood_Timer -= diff;
@@ -110,7 +110,7 @@ public:
//ShadowWordPain_Timer
if (ShadowWordPain_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHADOWWORDPAIN);
DoCastVictim(SPELL_SHADOWWORDPAIN);
ShadowWordPain_Timer = urand(5000, 15000);
}
else ShadowWordPain_Timer -= diff;
@@ -206,7 +206,7 @@ public:
//CrusaderStrike_Timer
if (CrusaderStrike_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CRUSADERSTRIKE);
DoCastVictim(SPELL_CRUSADERSTRIKE);
CrusaderStrike_Timer = 10000;
}
else CrusaderStrike_Timer -= diff;
@@ -214,7 +214,7 @@ public:
//HammerOfJustice_Timer
if (HammerOfJustice_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_HAMMEROFJUSTICE);
DoCastVictim(SPELL_HAMMEROFJUSTICE);
HammerOfJustice_Timer = 60000;
}
else HammerOfJustice_Timer -= diff;
@@ -316,7 +316,7 @@ public:
if (me->IsNonMeleeSpellCasted(false))
me->InterruptNonMeleeSpells(false);
DoCast(me->GetVictim(), SPELL_DEEPSLEEP);
DoCastVictim(SPELL_DEEPSLEEP);
_bCanResurrectCheck = true;
_bCanResurrect = true;
return;
@@ -362,7 +362,7 @@ public:
//HolySmite_Timer
if (HolySmite_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_HOLYSMITE);
DoCastVictim(SPELL_HOLYSMITE);
HolySmite_Timer = 6000;
}
else HolySmite_Timer -= diff;
@@ -71,7 +71,7 @@ public:
//LichSlap_Timer
if (LichSlap_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_LICHSLAP);
DoCastVictim(SPELL_LICHSLAP);
LichSlap_Timer = 45000;
}
else LichSlap_Timer -= diff;
@@ -79,7 +79,7 @@ public:
//FrostboltVolley_Timer
if (FrostboltVolley_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FROSTBOLTVOLLEY);
DoCastVictim(SPELL_FROSTBOLTVOLLEY);
FrostboltVolley_Timer = 20000;
}
else FrostboltVolley_Timer -= diff;
@@ -87,7 +87,7 @@ public:
//MindFlay_Timer
if (MindFlay_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_MINDFLAY);
DoCastVictim(SPELL_MINDFLAY);
MindFlay_Timer = 20000;
}
else MindFlay_Timer -= diff;
@@ -95,7 +95,7 @@ public:
//FrostNova_Timer
if (FrostNova_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FROSTNOVA);
DoCastVictim(SPELL_FROSTNOVA);
FrostNova_Timer = 15000;
}
else FrostNova_Timer -= diff;
@@ -94,7 +94,7 @@ public:
if (CurseOfBlood_Timer <= diff)
{
//Cast
DoCast(me->GetVictim(), SPELL_CURSEOFBLOOD);
DoCastVictim(SPELL_CURSEOFBLOOD);
//45 seconds
CurseOfBlood_Timer = 30000;
@@ -130,7 +130,7 @@ public:
// if (Illusion_Timer <= diff)
// {
// //Cast
// DoCast(me->GetVictim(), SPELL_ILLUSION);
// DoCastVictim(SPELL_ILLUSION);
//
// //3 Illusion will be summoned
// if (Illusioncounter < 3)
@@ -190,7 +190,7 @@ public:
if (Cleave_Timer <= diff)
{
//Cast
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
//5-8 seconds
Cleave_Timer = urand(5000, 8000);
@@ -82,14 +82,14 @@ public:
//ShadowVolley_Timer
if (ShadowVolley_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHADOWBOLTVOLLEY);
DoCastVictim(SPELL_SHADOWBOLTVOLLEY);
ShadowVolley_Timer = 15000;
} else ShadowVolley_Timer -= diff;
//BoneShield_Timer
if (BoneShield_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_BONESHIELD);
DoCastVictim(SPELL_BONESHIELD);
BoneShield_Timer = 45000;
} else BoneShield_Timer -= diff;
@@ -95,28 +95,28 @@ public:
//Freeze_Timer
if (Freeze_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FREEZE);
DoCastVictim(SPELL_FREEZE);
Freeze_Timer = 24000;
} else Freeze_Timer -= diff;
//Fear_Timer
if (Fear_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FEAR);
DoCastVictim(SPELL_FEAR);
Fear_Timer = 30000;
} else Fear_Timer -= diff;
//ChillNova_Timer
if (ChillNova_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CHILLNOVA);
DoCastVictim(SPELL_CHILLNOVA);
ChillNova_Timer = 14000;
} else ChillNova_Timer -= diff;
//FrostVolley_Timer
if (FrostVolley_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FROSTVOLLEY);
DoCastVictim(SPELL_FROSTVOLLEY);
FrostVolley_Timer = 15000;
} else FrostVolley_Timer -= diff;
@@ -77,7 +77,7 @@ public:
//BlastWave_Timer
if (m_uiBlastWave_Timer <= uiDiff)
{
DoCast(me->GetVictim(), SPELL_BLAST_WAVE);
DoCastVictim(SPELL_BLAST_WAVE);
m_uiBlastWave_Timer = 12000;
}
else
@@ -125,7 +125,7 @@ public:
if (ShadowBolt_Timer <= diff)
{
if (SelectTarget(SELECT_TARGET_RANDOM, 0))
DoCast(me->GetVictim(), SPELL_SHADOWBOLT);
DoCastVictim(SPELL_SHADOWBOLT);
ShadowBolt_Timer = 10000;
} else ShadowBolt_Timer -= diff;
@@ -133,7 +133,7 @@ public:
//Cleave
if (Cleave_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
//13 seconds until we should cast this again
Cleave_Timer = 7000 + (rand()%10000);
} else Cleave_Timer -= diff;
@@ -141,7 +141,7 @@ public:
//MortalStrike
if (MortalStrike_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_MORTALSTRIKE);
DoCastVictim(SPELL_MORTALSTRIKE);
MortalStrike_Timer = 10000 + (rand()%15000);
} else MortalStrike_Timer -= diff;
@@ -83,7 +83,7 @@ public:
if (BansheeWail_Timer <= diff)
{
if (rand()%100 < 95)
DoCast(me->GetVictim(), SPELL_BANSHEEWAIL);
DoCastVictim(SPELL_BANSHEEWAIL);
//4 seconds until we should cast this again
BansheeWail_Timer = 4000;
} else BansheeWail_Timer -= diff;
@@ -92,7 +92,7 @@ public:
if (BansheeCurse_Timer <= diff)
{
if (rand()%100 < 75)
DoCast(me->GetVictim(), SPELL_BANSHEECURSE);
DoCastVictim(SPELL_BANSHEECURSE);
//18 seconds until we should cast this again
BansheeCurse_Timer = 18000;
} else BansheeCurse_Timer -= diff;
@@ -101,7 +101,7 @@ public:
if (Silence_Timer <= diff)
{
if (rand()%100 < 80)
DoCast(me->GetVictim(), SPELL_SILENCE);
DoCastVictim(SPELL_SILENCE);
//13 seconds until we should cast this again
Silence_Timer = 13000;
} else Silence_Timer -= diff;
@@ -131,7 +131,7 @@ public:
//Cast
if (rand()%100 < 90) //90% chance to cast
{
DoCast(me->GetVictim(), SPELL_PUMMEL);
DoCastVictim(SPELL_PUMMEL);
}
//12 seconds until we should cast this again
Pummel_Timer = 12000;
@@ -143,7 +143,7 @@ public:
//Cast
if (rand()%100 < 80) //80% chance to cast
{
DoCast(me->GetVictim(), SPELL_KNOCKAWAY);
DoCastVictim(SPELL_KNOCKAWAY);
}
//14 seconds until we should cast this again
KnockAway_Timer = 14000;
@@ -153,7 +153,7 @@ public:
if (Shoot_Timer <= diff)
{
//Cast
DoCast(me->GetVictim(), SPELL_SHOOT);
DoCastVictim(SPELL_SHOOT);
//1 seconds until we should cast this again
Shoot_Timer = 1000;
} else Shoot_Timer -= diff;
@@ -131,28 +131,28 @@ public:
//MindBlast
if (m_uiMindBlast_Timer <= uiDiff)
{
DoCast(me->GetVictim(), SPELL_MINDBLAST);
DoCastVictim(SPELL_MINDBLAST);
m_uiMindBlast_Timer = urand(15000, 20000);
} else m_uiMindBlast_Timer -= uiDiff;
//CrusadersHammer
if (m_uiCrusadersHammer_Timer <= uiDiff)
{
DoCast(me->GetVictim(), SPELL_CRUSADERSHAMMER);
DoCastVictim(SPELL_CRUSADERSHAMMER);
m_uiCrusadersHammer_Timer = 12000;
} else m_uiCrusadersHammer_Timer -= uiDiff;
//CrusaderStrike
if (m_uiCrusaderStrike_Timer <= uiDiff)
{
DoCast(me->GetVictim(), SPELL_CRUSADERSTRIKE);
DoCastVictim(SPELL_CRUSADERSTRIKE);
m_uiCrusaderStrike_Timer = 15000;
} else m_uiCrusaderStrike_Timer -= uiDiff;
//HolyStrike
if (m_uiHolyStrike_Timer <= uiDiff)
{
DoCast(me->GetVictim(), SPELL_HOLYSTRIKE);
DoCastVictim(SPELL_HOLYSTRIKE);
m_uiHolyStrike_Timer = 15000;
} else m_uiHolyStrike_Timer -= uiDiff;
@@ -173,14 +173,14 @@ public:
//MindBlast
if (m_uiMindBlast_Timer <= uiDiff)
{
DoCast(me->GetVictim(), SPELL_MINDBLAST);
DoCastVictim(SPELL_MINDBLAST);
m_uiMindBlast_Timer = urand(15000, 20000);
} else m_uiMindBlast_Timer -= uiDiff;
//ShadowShock
if (m_uiShadowShock_Timer <= uiDiff)
{
DoCast(me->GetVictim(), SPELL_SHADOWSHOCK);
DoCastVictim(SPELL_SHADOWSHOCK);
m_uiShadowShock_Timer = 11000;
} else m_uiShadowShock_Timer -= uiDiff;
@@ -205,7 +205,7 @@ public:
//MindControl
if (m_uiMindControl_Timer <= uiDiff)
{
DoCast(me->GetVictim(), SPELL_MINDCONTROL);
DoCastVictim(SPELL_MINDCONTROL);
m_uiMindControl_Timer = 15000;
} else m_uiMindControl_Timer -= uiDiff;
}
@@ -104,21 +104,21 @@ public:
//DrainingBlow
if (DrainingBlow_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_DRAININGBLOW);
DoCastVictim(SPELL_DRAININGBLOW);
DrainingBlow_Timer = 15000;
} else DrainingBlow_Timer -= diff;
//CrowdPummel
if (CrowdPummel_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CROWDPUMMEL);
DoCastVictim(SPELL_CROWDPUMMEL);
CrowdPummel_Timer = 15000;
} else CrowdPummel_Timer -= diff;
//MightyBlow
if (MightyBlow_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_MIGHTYBLOW);
DoCastVictim(SPELL_MIGHTYBLOW);
MightyBlow_Timer = 20000;
} else MightyBlow_Timer -= diff;
@@ -82,7 +82,7 @@ public:
if (Frostbolt_Timer <= diff)
{
if (rand()%100 < 90)
DoCast(me->GetVictim(), SPELL_FROSTBOLT);
DoCastVictim(SPELL_FROSTBOLT);
Frostbolt_Timer = 3500;
} else Frostbolt_Timer -= diff;
@@ -90,7 +90,7 @@ public:
if (IceTomb_Timer <= diff)
{
if (rand()%100 < 65)
DoCast(me->GetVictim(), SPELL_ICETOMB);
DoCastVictim(SPELL_ICETOMB);
IceTomb_Timer = 28000;
} else IceTomb_Timer -= diff;
@@ -98,7 +98,7 @@ public:
if (DrainLife_Timer <= diff)
{
if (rand()%100 < 55)
DoCast(me->GetVictim(), SPELL_DRAINLIFE);
DoCastVictim(SPELL_DRAINLIFE);
DrainLife_Timer = 31000;
} else DrainLife_Timer -= diff;
@@ -92,7 +92,7 @@ public:
//EncasingWebs
if (EncasingWebs_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_ENCASINGWEBS);
DoCastVictim(SPELL_ENCASINGWEBS);
EncasingWebs_Timer = 30000;
} else EncasingWebs_Timer -= diff;
@@ -100,14 +100,14 @@ public:
if (PierceArmor_Timer <= diff)
{
if (urand(0, 3) < 2)
DoCast(me->GetVictim(), SPELL_PIERCEARMOR);
DoCastVictim(SPELL_PIERCEARMOR);
PierceArmor_Timer = 35000;
} else PierceArmor_Timer -= diff;
//CryptScarabs_Timer
if (CryptScarabs_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CRYPT_SCARABS);
DoCastVictim(SPELL_CRYPT_SCARABS);
CryptScarabs_Timer = 20000;
} else CryptScarabs_Timer -= diff;
@@ -98,7 +98,7 @@ public:
//Knockout
if (Knockout_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_KNOCKOUT);
DoCastVictim(SPELL_KNOCKOUT);
Knockout_Timer = 10000;
} else Knockout_Timer -= diff;
@@ -78,7 +78,7 @@ public:
if (RavenousClaw_Timer <= diff)
{
//Cast
DoCast(me->GetVictim(), SPELL_RAVENOUSCLAW);
DoCastVictim(SPELL_RAVENOUSCLAW);
//15 seconds until we should cast this again
RavenousClaw_Timer = 15000;
} else RavenousClaw_Timer -= diff;
@@ -306,14 +306,14 @@ public:
if (SlashTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_METEOR_SLASH);
DoCastVictim(SPELL_METEOR_SLASH);
SlashTimer = 11000;
} else SlashTimer -= diff;
if (StompTimer <= diff)
{
Talk(YELL_LOVE);
DoCast(me->GetVictim(), SPELL_STOMP);
DoCastVictim(SPELL_STOMP);
StompTimer = 30000;
} else StompTimer -= diff;
@@ -645,7 +645,7 @@ public:
{
if (!me->IsNonMeleeSpellCasted(false))
{
DoCast(me->GetVictim(), SPELL_BLAZE);
DoCastVictim(SPELL_BLAZE);
BlazeTimer = 3800;
}
} else BlazeTimer -= diff;
@@ -733,7 +733,7 @@ public:
{
//If we are within range melee the target
if (me->IsWithinMeleeRange(me->GetVictim()))
DoCast(me->GetVictim(), SPELL_DARK_STRIKE);
DoCastVictim(SPELL_DARK_STRIKE);
}
DarkstrikeTimer = 3000;
} else DarkstrikeTimer -= diff;
@@ -428,11 +428,11 @@ public:
events.ScheduleEvent(EVENT_BERSERK, 10000);
break;
case EVENT_CLEAVE:
DoCast(me->GetVictim(), SPELL_CLEAVE, false);
DoCastVictim(SPELL_CLEAVE, false);
events.ScheduleEvent(EVENT_CLEAVE, urand(5000, 10000));
break;
case EVENT_CORROSION:
DoCast(me->GetVictim(), SPELL_CORROSION, false);
DoCastVictim(SPELL_CORROSION, false);
events.ScheduleEvent(EVENT_CORROSION, urand(20000, 30000));
break;
case EVENT_GAS_NOVA:
@@ -528,7 +528,7 @@ public:
if (HeroicStrikeTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_HEROIC_STRIKE);
DoCastVictim(SPELL_HEROIC_STRIKE);
HeroicStrikeTimer = 2000;
} else HeroicStrikeTimer -= diff;
@@ -789,7 +789,7 @@ public:
if (CorruptionStrikeTimer <= diff)
{
if (!(rand()%5))Talk(SAY_SATH_SPELL2);
DoCast(me->GetVictim(), SPELL_CORRUPTION_STRIKE);
DoCastVictim(SPELL_CORRUPTION_STRIKE);
CorruptionStrikeTimer = 13000;
} else CorruptionStrikeTimer -= diff;
@@ -725,8 +725,8 @@ public:
case TIMER_SOUL_FLAY:
if (!me->IsNonMeleeSpellCasted(false))
{
DoCast(me->GetVictim(), SPELL_SOUL_FLAY_SLOW, false);
DoCast(me->GetVictim(), SPELL_SOUL_FLAY, false);
DoCastVictim(SPELL_SOUL_FLAY_SLOW, false);
DoCastVictim(SPELL_SOUL_FLAY, false);
Timer[TIMER_SOUL_FLAY] = 3500;
}
break;
@@ -966,7 +966,7 @@ public:
// Shadow Bolt Volley - Shoots Shadow Bolts at all enemies within 30 yards, for ~2k Shadow damage.
if (ShadowBoltVolleyTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHADOW_BOLT_VOLLEY);
DoCastVictim(SPELL_SHADOW_BOLT_VOLLEY);
ShadowBoltVolleyTimer = 12000;
}
else
@@ -1090,7 +1090,7 @@ public:
}
else if (me->IsWithinDistInMap(me->GetVictim(), 3)) // Explode if it's close enough to it's target
{
DoCast(me->GetVictim(), SPELL_FELFIRE_FISSION);
DoCastVictim(SPELL_FELFIRE_FISSION);
me->Kill(me);
}
}
@@ -1306,7 +1306,7 @@ public:
case CLASS_DRUID:
if (uiTimer[1] <= diff)
{
DoCast(me->GetVictim(), SPELL_SR_MOONFIRE, false);
DoCastVictim(SPELL_SR_MOONFIRE, false);
uiTimer[1] = urand(2000, 4000);
}
DoMeleeAttackIfReady();
@@ -1314,19 +1314,19 @@ public:
case CLASS_HUNTER:
if (uiTimer[1] <= diff)
{
DoCast(me->GetVictim(), SPELL_SR_MULTI_SHOT, false);
DoCastVictim(SPELL_SR_MULTI_SHOT, false);
uiTimer[1] = urand(8000, 10000);
}
if (uiTimer[2] <= diff)
{
DoCast(me->GetVictim(), SPELL_SR_SHOOT, false);
DoCastVictim(SPELL_SR_SHOOT, false);
uiTimer[2] = urand(4000, 6000);
}
if (me->IsWithinMeleeRange(me->GetVictim(), 6))
{
if (uiTimer[0] <= diff)
{
DoCast(me->GetVictim(), SPELL_SR_MULTI_SHOT, false);
DoCastVictim(SPELL_SR_MULTI_SHOT, false);
uiTimer[0] = urand(6000, 8000);
}
DoMeleeAttackIfReady();
@@ -1335,7 +1335,7 @@ public:
case CLASS_MAGE:
if (uiTimer[1] <= diff)
{
DoCast(me->GetVictim(), SPELL_SR_FIREBALL, false);
DoCastVictim(SPELL_SR_FIREBALL, false);
uiTimer[1] = urand(2000, 4000);
}
DoMeleeAttackIfReady();
@@ -1343,7 +1343,7 @@ public:
case CLASS_WARLOCK:
if (uiTimer[1] <= diff)
{
DoCast(me->GetVictim(), SPELL_SR_SHADOW_BOLT, false);
DoCastVictim(SPELL_SR_SHADOW_BOLT, false);
uiTimer[1] = urand(3000, 5000);
}
if (uiTimer[2] <= diff)
@@ -1356,7 +1356,7 @@ public:
case CLASS_WARRIOR:
if (uiTimer[1] <= diff)
{
DoCast(me->GetVictim(), SPELL_SR_WHIRLWIND, false);
DoCastVictim(SPELL_SR_WHIRLWIND, false);
uiTimer[1] = urand(9000, 11000);
}
DoMeleeAttackIfReady();
@@ -1364,12 +1364,12 @@ public:
case CLASS_PALADIN:
if (uiTimer[1] <= diff)
{
DoCast(me->GetVictim(), SPELL_SR_HAMMER_OF_JUSTICE, false);
DoCastVictim(SPELL_SR_HAMMER_OF_JUSTICE, false);
uiTimer[1] = urand(6000, 8000);
}
if (uiTimer[2] <= diff)
{
DoCast(me->GetVictim(), SPELL_SR_HOLY_SHOCK, false);
DoCastVictim(SPELL_SR_HOLY_SHOCK, false);
uiTimer[2] = urand(2000, 4000);
}
DoMeleeAttackIfReady();
@@ -1377,7 +1377,7 @@ public:
case CLASS_PRIEST:
if (uiTimer[1] <= diff)
{
DoCast(me->GetVictim(), SPELL_SR_HOLY_SMITE, false);
DoCastVictim(SPELL_SR_HOLY_SMITE, false);
uiTimer[1] = urand(4000, 6000);
}
if (uiTimer[2] <= diff)
@@ -1390,7 +1390,7 @@ public:
case CLASS_SHAMAN:
if (uiTimer[1] <= diff)
{
DoCast(me->GetVictim(), SPELL_SR_EARTH_SHOCK, false);
DoCastVictim(SPELL_SR_EARTH_SHOCK, false);
uiTimer[1] = urand(4000, 6000);
}
DoMeleeAttackIfReady();
@@ -1398,7 +1398,7 @@ public:
case CLASS_ROGUE:
if (uiTimer[1] <= diff)
{
DoCast(me->GetVictim(), SPELL_SR_HEMORRHAGE, true);
DoCastVictim(SPELL_SR_HEMORRHAGE, true);
uiTimer[1] = urand(4000, 6000);
}
DoMeleeAttackIfReady();
@@ -559,7 +559,7 @@ public:
if (VoidBlastTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_VOID_BLAST, false);
DoCastVictim(SPELL_VOID_BLAST, false);
VoidBlastTimer = 45000;
} else VoidBlastTimer -= diff;
@@ -185,7 +185,7 @@ class boss_archaedas : public CreatureScript
if (uiTremorTimer <= uiDiff)
{
//Cast
DoCast(me->GetVictim(), SPELL_GROUND_TREMOR);
DoCastVictim(SPELL_GROUND_TREMOR);
//45 seconds until we should cast this agian
uiTremorTimer = 45000;
@@ -72,7 +72,7 @@ class boss_ironaya : public CreatureScript
//If we are <50% hp do knockaway ONCE
if (!bHasCastedKnockaway && HealthBelowPct(50))
{
DoCast(me->GetVictim(), SPELL_KNOCKAWAY, true);
DoCastVictim(SPELL_KNOCKAWAY, true);
// current aggro target is knocked away pick new target
Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 0);
@@ -38,9 +38,22 @@ enum Events
{
};
enum Events
{
EVENT_STATIC_DISRUPTION = 1,
EVENT_GUST_OF_WIND = 2,
EVENT_CALL_LIGHTNING = 3,
EVENT_ELECTRICAL_STORM = 4,
EVENT_RAIN = 5,
EVENT_SUMMON_EAGLES = 6,
EVENT_STORM_SEQUENCE = 7,
EVENT_ENRAGE = 8
};
class boss_akilzon : public CreatureScript
{
public:
boss_akilzon() : CreatureScript("boss_akilzon") { }
boss_akilzon() : CreatureScript("boss_akilzon") { }
@@ -55,6 +68,13 @@ class boss_akilzon : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
events.ScheduleEvent(EVENT_STATIC_DISRUPTION, urand(10000, 20000)); // 10 to 20 seconds (bosskillers)
events.ScheduleEvent(EVENT_GUST_OF_WIND, urand(20000, 30000)); // 20 to 30 seconds(bosskillers)
events.ScheduleEvent(EVENT_CALL_LIGHTNING, urand(10000, 20000)); // totaly random timer. can't find any info on this
events.ScheduleEvent(EVENT_ELECTRICAL_STORM, 60000); // 60 seconds(bosskillers)
events.ScheduleEvent(EVENT_RAIN, urand(47000, 52000));
events.ScheduleEvent(EVENT_ENRAGE, 10*MINUTE*IN_MILLISECONDS); // 10 minutes till enrage(bosskillers)
Talk(SAY_AGGRO);
_EnterCombat();
}
@@ -93,6 +113,14 @@ class boss_akilzon : public CreatureScript
DoMeleeAttackIfReady();
}
private:
uint64 BirdGUIDs[8];
uint64 TargetGUID;
uint64 CycloneGUID;
uint64 CloudGUID;
uint8 StormCount;
bool isRaining;
};
CreatureAI* GetAI(Creature* creature) const
@@ -122,13 +122,13 @@ public:
return;
if (SoulCorruption_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SOUL_CORRUPTION);
DoCastVictim(SPELL_SOUL_CORRUPTION);
SoulCorruption_Timer = rand()%4000+15000; //gotta confirm Timers
} else SoulCorruption_Timer-=diff;
if (CreatureOfNightmare_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_CREATURE_OF_NIGHTMARE);
DoCastVictim(SPELL_CREATURE_OF_NIGHTMARE);
CreatureOfNightmare_Timer = 45000; //gotta confirm Timers
} else CreatureOfNightmare_Timer-=diff;
DoMeleeAttackIfReady();
@@ -188,7 +188,7 @@ public:
uiShootTimer = 1500;
if (!me->IsWithinDist(me->GetVictim(), ATTACK_DISTANCE))
DoCast(me->GetVictim(), SPELL_SHOOT);
DoCastVictim(SPELL_SHOOT);
} else uiShootTimer -= diff;
}
};
@@ -200,9 +200,9 @@ class example_creature : public CreatureScript
{
//Cast spell one on our current target.
if (rand()%50 > 10)
DoCast(me->GetVictim(), SPELL_ONE_ALT);
DoCastVictim(SPELL_ONE_ALT);
else if (me->IsWithinDist(me->GetVictim(), 25.0f))
DoCast(me->GetVictim(), SPELL_ONE);
DoCastVictim(SPELL_ONE);
m_uiSpell1Timer = 5000;
}
@@ -213,7 +213,7 @@ class example_creature : public CreatureScript
if (m_uiSpell2Timer <= uiDiff)
{
//Cast spell two on our current target.
DoCast(me->GetVictim(), SPELL_TWO);
DoCastVictim(SPELL_TWO);
m_uiSpell2Timer = 37000;
}
else
@@ -226,7 +226,7 @@ class example_creature : public CreatureScript
if (m_uiSpell3Timer <= uiDiff)
{
//Cast spell one on our current target.
DoCast(me->GetVictim(), SPELL_THREE);
DoCastVictim(SPELL_THREE);
m_uiSpell3Timer = 19000;
}
@@ -237,7 +237,7 @@ class example_creature : public CreatureScript
{
//Say our line then cast uber death spell
Talk(SAY_BERSERK, me->GetVictim() ? me->GetVictim()->GetGUID() : 0);
DoCast(me->GetVictim(), SPELL_BERSERK);
DoCastVictim(SPELL_BERSERK);
//Cast our beserk spell agian in 12 seconds if we didn't kill everyone
m_uiBeserkTimer = 12000;
@@ -147,7 +147,7 @@ class example_escort : public CreatureScript
if (m_uiDeathCoilTimer <= uiDiff)
{
Talk(SAY_SPELL);
DoCast(me->GetVictim(), SPELL_DEATH_COIL, false);
DoCastVictim(SPELL_DEATH_COIL, false);
m_uiDeathCoilTimer = 4000;
}
else
+6 -6
View File
@@ -46,12 +46,12 @@ set(scripts_STAT_SRCS
Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h
Kalimdor/CavernsOfTime/DarkPortal/dark_portal.h
Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp
Kalimdor/CavernsOfTime/DarkPortal/boss_chrono_lord_deja.cpp
Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp
Kalimdor/CavernsOfTime/DarkPortal/boss_aeonus.cpp
Kalimdor/CavernsOfTime/DarkPortal/boss_temporus.cpp
Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h
Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp
Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp
Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp
Kalimdor/BlackfathomDeeps/boss_kelris.cpp
Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
@@ -456,7 +456,7 @@ public:
if (me->HasAura(chargeSpell))
{
me->RemoveAuraFromStack(chargeSpell);
DoCast(me->GetVictim(), unleashSpell);
DoCastVictim(unleashSpell);
HasCast = true;
SoulChargeCount--;
}
@@ -577,7 +577,7 @@ public:
{
if (HandOfDeathTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_HAND_OF_DEATH);
DoCastVictim(SPELL_HAND_OF_DEATH);
HandOfDeathTimer = 2000;
} else HandOfDeathTimer -= diff;
return; // Don't do anything after this point.
@@ -605,7 +605,7 @@ public:
if (FearTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_FEAR);
DoCastVictim(SPELL_FEAR);
FearTimer = 42000;
} else FearTimer -= diff;
@@ -161,7 +161,7 @@ public:
if (CleaveTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_CLEAVE);
DoCastVictim(SPELL_CLEAVE);
CleaveTimer = 10000+rand()%5000;
} else CleaveTimer -= diff;
@@ -139,13 +139,13 @@ public:
} else FrostArmorTimer -= diff;
if (DecayTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_DEATH_AND_DECAY);
DoCastVictim(SPELL_DEATH_AND_DECAY);
DecayTimer = 60000+rand()%20000;
Talk(SAY_DECAY);
} else DecayTimer -= diff;
if (NovaTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_FROST_NOVA);
DoCastVictim(SPELL_FROST_NOVA);
NovaTimer = 30000+rand()%15000;
Talk(SAY_NOVA);
} else NovaTimer -= diff;
@@ -528,7 +528,7 @@ public:
}
if (FlameBuffetTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_FLAME_BUFFET, true);
DoCastVictim(SPELL_FLAME_BUFFET, true);
FlameBuffetTimer = 7000;
} else FlameBuffetTimer -= diff;
DoMeleeAttackIfReady();
@@ -630,7 +630,7 @@ public:
return;
if (KnockDownTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_KNOCKDOWN);
DoCastVictim(SPELL_KNOCKDOWN);
KnockDownTimer = 15000+rand()%10000;
} else KnockDownTimer -= diff;
DoMeleeAttackIfReady();
@@ -858,7 +858,7 @@ public:
if (ShadowBoltTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_SHADOW_BOLT);
DoCastVictim(SPELL_SHADOW_BOLT);
ShadowBoltTimer = 20000+rand()%10000;
} else ShadowBoltTimer -= diff;
@@ -952,12 +952,12 @@ public:
return;
if (CourseTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_BANSHEE_CURSE);
DoCastVictim(SPELL_BANSHEE_CURSE);
CourseTimer = 20000+rand()%5000;
} else CourseTimer -= diff;
if (WailTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_BANSHEE_WAIL);
DoCastVictim(SPELL_BANSHEE_WAIL);
WailTimer = 15000+rand()%5000;
} else WailTimer -= diff;
if (ShellTimer <= diff)
@@ -1052,7 +1052,7 @@ public:
return;
if (WebTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_WEB);
DoCastVictim(SPELL_WEB);
WebTimer = 20000+rand()%5000;
} else WebTimer -= diff;
DoMeleeAttackIfReady();
@@ -1142,7 +1142,7 @@ public:
return;
if (ManaBurnTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_MANA_BURN);
DoCastVictim(SPELL_MANA_BURN);
ManaBurnTimer = 9000+rand()%5000;
} else ManaBurnTimer -= diff;
DoMeleeAttackIfReady();
@@ -1252,7 +1252,7 @@ public:
{
if (!me->IsWithinDist(me->GetVictim(), 25))
{
DoCast(me->GetVictim(), SPELL_FROST_BREATH);
DoCastVictim(SPELL_FROST_BREATH);
me->StopMoving();
me->GetMotionMaster()->Clear();
FrostBreathTimer = 4000;
@@ -1387,7 +1387,7 @@ public:
{
if (me->IsWithinDist(me->GetVictim(), 20))
{
DoCast(me->GetVictim(), SPELL_GARGOYLE_STRIKE);
DoCastVictim(SPELL_GARGOYLE_STRIKE);
me->StopMoving();
me->GetMotionMaster()->Clear();
StrikeTimer = 2000+rand()%1000;
@@ -105,7 +105,7 @@ public:
//Curse of twisted flesh timer
if (uiCurseFleshTimer <= diff)
{
DoCast(me->GetVictim(), SPELL_CURSE_OF_TWISTED_FLESH);
DoCastVictim(SPELL_CURSE_OF_TWISTED_FLESH);
uiCurseFleshTimer = 37000;
} else uiCurseFleshTimer -= diff;
@@ -1,49 +0,0 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
* Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DEF_DARKPORTAL_H
#define DEF_DARKPORTAL_H
#define TYPE_MEDIVH 1
#define TYPE_RIFT 2
#define DATA_MEDIVH 10
#define DATA_PORTAL_COUNT 11
#define DATA_SHIELD 12
#define WORLD_STATE_BM 2541
#define WORLD_STATE_BM_SHIELD 2540
#define WORLD_STATE_BM_RIFT 2784
#define QUEST_OPENING_PORTAL 10297
#define QUEST_MASTER_TOUCH 9836
#define C_TIME_KEEPER 17918
#define C_RKEEP 21104
#define C_RLORD 17839
#define C_DEJA 17879
#define C_TEMPO 17880
#define C_AEONUS 17881
#define C_ASSAS 17835
#define C_WHELP 21818
#define C_CHRON 17892
#define C_EXECU 18994
#define C_VANQU 18995
#endif
@@ -126,7 +126,7 @@ public:
//Hammer of Justice
if (HammerOfJustice_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_HAMMER_OF_JUSTICE);
DoCastVictim(SPELL_HAMMER_OF_JUSTICE);
HammerOfJustice_Timer = 60000;
} else HammerOfJustice_Timer -= diff;
@@ -147,7 +147,7 @@ public:
//Consecration
if (Consecration_Timer <= diff)
{
//DoCast(me->GetVictim(), SPELL_CONSECRATION);
//DoCastVictim(SPELL_CONSECRATION);
Consecration_Timer = urand(5000, 10000);
} else Consecration_Timer -= diff;
@@ -107,7 +107,7 @@ public:
if (me->IsNonMeleeSpellCasted(false))
me->InterruptNonMeleeSpells(false);
DoCast(me->GetVictim(), SPELL_SAND_BREATH);
DoCastVictim(SPELL_SAND_BREATH);
Talk(SAY_BREATH);
@@ -116,7 +116,7 @@ public:
if (ImpendingDeath_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_IMPENDING_DEATH);
DoCastVictim(SPELL_IMPENDING_DEATH);
ImpendingDeath_Timer = 25000+rand()%5000;
} else ImpendingDeath_Timer -= diff;
@@ -166,7 +166,7 @@ public:
//Whirlwind
if (Whirlwind_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_WHIRLWIND);
DoCastVictim(SPELL_WHIRLWIND);
Whirlwind_Timer = 20000+rand()%5000;
} else Whirlwind_Timer -= diff;
@@ -174,7 +174,7 @@ public:
if (Fear_Timer <= diff)
{
Talk(SAY_SHOUT);
DoCast(me->GetVictim(), SPELL_FRIGHTENING_SHOUT);
DoCastVictim(SPELL_FRIGHTENING_SHOUT);
Fear_Timer = 25000+rand()%10000;
} else Fear_Timer -= diff;
@@ -182,7 +182,7 @@ public:
if (MortalStrike_Timer <= diff)
{
Talk(SAY_MORTAL);
DoCast(me->GetVictim(), SPELL_MORTAL_STRIKE);
DoCastVictim(SPELL_MORTAL_STRIKE);
MortalStrike_Timer = 20000+rand()%10000;
} else MortalStrike_Timer -= diff;
@@ -16,18 +16,18 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* ScriptData
SDName: Boss_Aeonus
SD%Complete: 80
SDComment: Some spells not implemented
SDCategory: Caverns of Time, The Dark Portal
EndScriptData */
/*
Name: Boss_Aeonus
%Complete: 80
Comment: Some spells not implemented
Category: Caverns of Time, The Dark Portal
*/
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "dark_portal.h"
#include "the_black_morass.h"
enum eEnums
enum Enums
{
SAY_ENTER = 0,
SAY_AGGRO = 1,
@@ -43,45 +43,37 @@ enum eEnums
H_SPELL_SAND_BREATH = 39049
};
enum Events
{
EVENT_SANDBREATH = 1,
EVENT_TIMESTOP = 2,
EVENT_FRENZY = 3
};
class boss_aeonus : public CreatureScript
{
public:
boss_aeonus() : CreatureScript("boss_aeonus") { }
CreatureAI* GetAI(Creature* creature) const
struct boss_aeonusAI : public BossAI
{
return new boss_aeonusAI (creature);
}
boss_aeonusAI(Creature* creature) : BossAI(creature, TYPE_AEONUS) { }
struct boss_aeonusAI : public ScriptedAI
{
boss_aeonusAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
InstanceScript* instance;
uint32 SandBreath_Timer;
uint32 TimeStop_Timer;
uint32 Frenzy_Timer;
void Reset()
{
SandBreath_Timer = 15000+rand()%15000;
TimeStop_Timer = 10000+rand()%5000;
Frenzy_Timer = 30000+rand()%15000;
}
void Reset() { }
void EnterCombat(Unit* /*who*/)
{
events.ScheduleEvent(EVENT_SANDBREATH, urand(15000, 30000));
events.ScheduleEvent(EVENT_TIMESTOP, urand(10000, 15000));
events.ScheduleEvent(EVENT_FRENZY, urand(30000, 45000));
Talk(SAY_AGGRO);
}
void MoveInLineOfSight(Unit* who)
{
//Despawn Time Keeper
if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == C_TIME_KEEPER)
if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_TIME_KEEPER)
{
if (me->IsWithinDistInMap(who, 20.0f))
{
@@ -100,7 +92,7 @@ public:
if (instance)
{
instance->SetData(TYPE_RIFT, DONE);
instance->SetData(TYPE_MEDIVH, DONE);//FIXME: later should be removed
instance->SetData(TYPE_MEDIVH, DONE); // FIXME: later should be removed
}
}
@@ -115,32 +107,40 @@ public:
if (!UpdateVictim())
return;
//Sand Breath
if (SandBreath_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_SAND_BREATH);
SandBreath_Timer = 15000+rand()%10000;
} else SandBreath_Timer -= diff;
events.Update(diff);
//Time Stop
if (TimeStop_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_TIME_STOP);
TimeStop_Timer = 20000+rand()%15000;
} else TimeStop_Timer -= diff;
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
//Frenzy
if (Frenzy_Timer <= diff)
{
Talk(EMOTE_FRENZY);
DoCast(me, SPELL_ENRAGE);
Frenzy_Timer = 20000+rand()%15000;
} else Frenzy_Timer -= diff;
while (uint32 eventId = events.ExecuteEvent())
{
switch (eventId)
{
case EVENT_SANDBREATH:
DoCastVictim(SPELL_SAND_BREATH);
events.ScheduleEvent(EVENT_SANDBREATH, urand(15000, 25000));
break;
case EVENT_TIMESTOP:
DoCastVictim(SPELL_TIME_STOP);
events.ScheduleEvent(EVENT_TIMESTOP, urand(20000, 35000));
break;
case EVENT_FRENZY:
Talk(EMOTE_FRENZY);
DoCast(me, SPELL_ENRAGE);
events.ScheduleEvent(EVENT_FRENZY, urand(20000, 35000));
break;
default:
break;
}
}
DoMeleeAttackIfReady();
}
DoMeleeAttackIfReady();
CreatureAI* GetAI(Creature* creature) const
{
return new boss_aeonusAI (creature);
}
};
};
void AddSC_boss_aeonus()
@@ -16,18 +16,18 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* ScriptData
SDName: Boss_Chrono_Lord_Deja
SD%Complete: 65
SDComment: All abilities not implemented
SDCategory: Caverns of Time, The Dark Portal
EndScriptData */
/*
Name: Boss_Chrono_Lord_Deja
%Complete: 65
Comment: All abilities not implemented
Category: Caverns of Time, The Black Morass
*/
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "dark_portal.h"
#include "the_black_morass.h"
enum eEnums
enum Enums
{
SAY_ENTER = 0,
SAY_AGGRO = 1,
@@ -43,47 +43,40 @@ enum eEnums
SPELL_ATTRACTION = 38540 //Not Implemented (Heroic mode)
};
enum Events
{
EVENT_ARCANE_BLAST = 1,
EVENT_TIME_LAPSE = 2,
EVENT_ARCANE_DISCHARGE = 3,
EVENT_ATTRACTION = 4
};
class boss_chrono_lord_deja : public CreatureScript
{
public:
boss_chrono_lord_deja() : CreatureScript("boss_chrono_lord_deja") { }
CreatureAI* GetAI(Creature* creature) const
struct boss_chrono_lord_dejaAI : public BossAI
{
return new boss_chrono_lord_dejaAI (creature);
}
boss_chrono_lord_dejaAI(Creature* creature) : BossAI(creature, TYPE_CRONO_LORD_DEJA) { }
struct boss_chrono_lord_dejaAI : public ScriptedAI
{
boss_chrono_lord_dejaAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
InstanceScript* instance;
uint32 ArcaneBlast_Timer;
uint32 TimeLapse_Timer;
uint32 Attraction_Timer;
uint32 ArcaneDischarge_Timer;
void Reset()
{
ArcaneBlast_Timer = 18000+rand()%5000;
TimeLapse_Timer = 10000+rand()%5000;
ArcaneDischarge_Timer = 20000+rand()%10000;
Attraction_Timer = 25000+rand()%10000;
}
void Reset() { }
void EnterCombat(Unit* /*who*/)
{
events.ScheduleEvent(EVENT_ARCANE_BLAST, urand(18000, 23000));
events.ScheduleEvent(EVENT_TIME_LAPSE, urand(10000, 15000));
events.ScheduleEvent(EVENT_ARCANE_DISCHARGE, urand(20000, 30000));
if (IsHeroic())
events.ScheduleEvent(EVENT_ATTRACTION, urand(25000, 35000));
Talk(SAY_AGGRO);
}
void MoveInLineOfSight(Unit* who)
{
//Despawn Time Keeper
if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == C_TIME_KEEPER)
if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_TIME_KEEPER)
{
if (me->IsWithinDistInMap(who, 20.0f))
{
@@ -110,46 +103,49 @@ public:
void UpdateAI(uint32 diff)
{
//Return since we have no target
if (!UpdateVictim())
return;
//Arcane Blast
if (ArcaneBlast_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_ARCANE_BLAST);
ArcaneBlast_Timer = 15000+rand()%10000;
} else ArcaneBlast_Timer -= diff;
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
//Arcane Discharge
if (ArcaneDischarge_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
DoCast(target, SPELL_ARCANE_DISCHARGE);
ArcaneDischarge_Timer = 20000+rand()%10000;
} else ArcaneDischarge_Timer -= diff;
events.Update(diff);
//Time Lapse
if (TimeLapse_Timer <= diff)
while (uint32 eventId = events.ExecuteEvent())
{
Talk(SAY_BANISH);
DoCast(me, SPELL_TIME_LAPSE);
TimeLapse_Timer = 15000+rand()%10000;
} else TimeLapse_Timer -= diff;
if (IsHeroic())
{
if (Attraction_Timer <= diff)
switch (eventId)
{
DoCast(me, SPELL_ATTRACTION);
Attraction_Timer = 25000+rand()%10000;
} else Attraction_Timer -= diff;
case EVENT_ARCANE_BLAST:
DoCastVictim(SPELL_ARCANE_BLAST);
events.ScheduleEvent(EVENT_ARCANE_BLAST, urand(15000, 25000));
break;
case EVENT_TIME_LAPSE:
Talk(SAY_BANISH);
DoCast(me, SPELL_TIME_LAPSE);
events.ScheduleEvent(EVENT_TIME_LAPSE, urand(15000, 25000));
break;
case EVENT_ARCANE_DISCHARGE:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
DoCast(target, SPELL_ARCANE_DISCHARGE);
events.ScheduleEvent(EVENT_ARCANE_DISCHARGE, urand(20000, 30000));
break;
case EVENT_ATTRACTION: // Only in Heroic
DoCast(me, SPELL_ATTRACTION);
events.ScheduleEvent(EVENT_ATTRACTION, urand(25000, 35000));
break;
default:
break;
}
}
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_chrono_lord_dejaAI (creature);
}
};
};
void AddSC_boss_chrono_lord_deja()
@@ -16,18 +16,18 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* ScriptData
SDName: Boss_Temporus
SD%Complete: 75
SDComment: More abilities need to be implemented
SDCategory: Caverns of Time, The Dark Portal
EndScriptData */
/*
Name: Boss_Temporus
%Complete: 75
Comment: More abilities need to be implemented
Category: Caverns of Time, The Black Morass
*/
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "dark_portal.h"
#include "the_black_morass.h"
enum eEnums
enum Enums
{
SAY_ENTER = 0,
SAY_AGGRO = 1,
@@ -42,40 +42,33 @@ enum eEnums
SPELL_REFLECT = 38592 //Not Implemented (Heroic mod)
};
enum Events
{
EVENT_HASTE = 1,
EVENT_MORTAL_WOUND = 2,
EVENT_WING_BUFFET = 3,
EVENT_SPELL_REFLECTION = 4
};
class boss_temporus : public CreatureScript
{
public:
boss_temporus() : CreatureScript("boss_temporus") { }
CreatureAI* GetAI(Creature* creature) const
struct boss_temporusAI : public BossAI
{
return new boss_temporusAI (creature);
}
boss_temporusAI(Creature* creature) : BossAI(creature, TYPE_TEMPORUS) { }
struct boss_temporusAI : public ScriptedAI
{
boss_temporusAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
InstanceScript* instance;
uint32 Haste_Timer;
uint32 SpellReflection_Timer;
uint32 MortalWound_Timer;
uint32 WingBuffet_Timer;
void Reset()
{
Haste_Timer = 15000+rand()%8000;
SpellReflection_Timer = 30000;
MortalWound_Timer = 8000;
WingBuffet_Timer = 25000+rand()%10000;
}
void Reset() { }
void EnterCombat(Unit* /*who*/)
{
events.ScheduleEvent(EVENT_HASTE, urand(15000, 23000));
events.ScheduleEvent(EVENT_MORTAL_WOUND, 8000);
events.ScheduleEvent(EVENT_WING_BUFFET, urand(25000, 35000));
if (IsHeroic())
events.ScheduleEvent(EVENT_SPELL_REFLECTION, 30000);
Talk(SAY_AGGRO);
}
@@ -95,7 +88,7 @@ public:
void MoveInLineOfSight(Unit* who)
{
//Despawn Time Keeper
if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == C_TIME_KEEPER)
if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_TIME_KEEPER)
{
if (me->IsWithinDistInMap(who, 20.0f))
{
@@ -114,37 +107,41 @@ public:
if (!UpdateVictim())
return;
//Attack Haste
if (Haste_Timer <= diff)
{
DoCast(me, SPELL_HASTE);
Haste_Timer = 20000+rand()%5000;
} else Haste_Timer -= diff;
events.Update(diff);
//MortalWound_Timer
if (MortalWound_Timer <= diff)
{
DoCast(me, SPELL_MORTAL_WOUND);
MortalWound_Timer = 10000+rand()%10000;
} else MortalWound_Timer -= diff;
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
//Wing ruffet
if (WingBuffet_Timer <= diff)
{
DoCast(me, SPELL_WING_BUFFET);
WingBuffet_Timer = 20000+rand()%10000;
} else WingBuffet_Timer -= diff;
if (IsHeroic())
{
if (SpellReflection_Timer <= diff)
while (uint32 eventId = events.ExecuteEvent())
{
DoCast(me, SPELL_REFLECT);
SpellReflection_Timer = 25000+rand()%10000;
} else SpellReflection_Timer -= diff;
}
switch (eventId)
{
case EVENT_HASTE:
DoCast(me, SPELL_HASTE);
events.ScheduleEvent(EVENT_HASTE, urand(20000, 25000));
break;
case EVENT_MORTAL_WOUND:
DoCast(me, SPELL_MORTAL_WOUND);
events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(10000, 20000));
break;
case EVENT_WING_BUFFET:
DoCast(me, SPELL_WING_BUFFET);
events.ScheduleEvent(EVENT_WING_BUFFET, urand(20000, 30000));
break;
case EVENT_SPELL_REFLECTION: // Only in Heroic
DoCast(me, SPELL_REFLECT);
events.ScheduleEvent(EVENT_SPELL_REFLECTION, urand(25000, 35000));
break;
default:
break;
}
}
DoMeleeAttackIfReady();
}
DoMeleeAttackIfReady();
CreatureAI* GetAI(Creature* creature) const
{
return new boss_temporusAI (creature);
}
};
@@ -16,30 +16,28 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* ScriptData
SDName: Instance_Dark_Portal
SD%Complete: 50
SDComment: Quest support: 9836, 10297. Currently in progress.
SDCategory: Caverns of Time, The Dark Portal
EndScriptData */
/*
Name: Instance_The_Black_Morass
%Complete: 50
Comment: Quest support: 9836, 10297. Currently in progress.
Category: Caverns of Time, The Black Morass
*/
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "dark_portal.h"
#include "the_black_morass.h"
#include "Player.h"
#include "TemporarySummon.h"
#include "SpellInfo.h"
#include "ScriptedCreature.h"
#define MAX_ENCOUNTER 2
enum Misc
{
SPELL_RIFT_CHANNEL = 31387,
RIFT_BOSS = 1
};
#define C_MEDIVH 15608
#define C_TIME_RIFT 17838
#define SPELL_RIFT_CHANNEL 31387
#define RIFT_BOSS 1
inline uint32 RandRiftBoss() { return ((rand()%2) ? C_RKEEP : C_RLORD); }
inline uint32 RandRiftBoss() { return ((rand()%2) ? NPC_RIFT_KEEPER : NPC_RIFT_LORD); }
float PortalLocation[4][4]=
{
@@ -57,45 +55,46 @@ struct Wave
static Wave RiftWaves[]=
{
{RIFT_BOSS, 0},
{C_DEJA, 0},
{RIFT_BOSS, 120000},
{C_TEMPO, 140000},
{RIFT_BOSS, 120000},
{C_AEONUS, 0}
{ RIFT_BOSS, 0 },
{ NPC_CRONO_LORD_DEJA, 0 },
{ RIFT_BOSS, 120000 },
{ NPC_TEMPORUS, 140000 },
{ RIFT_BOSS, 120000 },
{ NPC_AEONUS, 0 }
};
class instance_dark_portal : public InstanceMapScript
enum EventIds
{
EVENT_NEXT_PORTAL = 1
};
class instance_the_black_morass : public InstanceMapScript
{
public:
instance_dark_portal() : InstanceMapScript("instance_dark_portal", 269) { }
instance_the_black_morass() : InstanceMapScript("instance_the_black_morass", 269) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const
{
return new instance_dark_portal_InstanceMapScript(map);
return new instance_the_black_morass_InstanceMapScript(map);
}
struct instance_dark_portal_InstanceMapScript : public InstanceScript
struct instance_the_black_morass_InstanceMapScript : public InstanceScript
{
instance_dark_portal_InstanceMapScript(Map* map) : InstanceScript(map)
{
}
instance_the_black_morass_InstanceMapScript(Map* map) : InstanceScript(map) { }
uint32 m_auiEncounter[MAX_ENCOUNTER];
uint32 m_auiEncounter[EncounterCount];
uint32 mRiftPortalCount;
uint32 mShieldPercent;
uint8 mRiftWaveCount;
uint8 mRiftWaveId;
uint8 mRiftWaveCount;
uint8 mRiftWaveId;
uint32 NextPortal_Timer;
uint64 MedivhGUID;
uint8 CurrentRiftId;
uint64 _medivhGUID;
uint8 _currentRiftId;
void Initialize()
{
MedivhGUID = 0;
_medivhGUID = 0;
Clear();
}
@@ -108,9 +107,7 @@ public:
mRiftWaveCount = 0;
mRiftWaveId = 0;
CurrentRiftId = 0;
NextPortal_Timer = 0;
_currentRiftId = 0;
}
void InitWorldState(bool Enable = true)
@@ -138,8 +135,8 @@ public:
void OnCreatureCreate(Creature* creature)
{
if (creature->GetEntry() == C_MEDIVH)
MedivhGUID = creature->GetGUID();
if (creature->GetEntry() == NPC_MEDIVH)
_medivhGUID = creature->GetGUID();
}
//what other conditions to check?
@@ -181,11 +178,11 @@ public:
if (!mShieldPercent)
{
if (Creature* pMedivh = instance->GetCreature(MedivhGUID))
if (Creature* medivh = instance->GetCreature(_medivhGUID))
{
if (pMedivh->IsAlive())
if (medivh->IsAlive())
{
pMedivh->DealDamage(pMedivh, pMedivh->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
medivh->DealDamage(medivh, medivh->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
m_auiEncounter[0] = FAIL;
m_auiEncounter[1] = NOT_STARTED;
}
@@ -196,16 +193,16 @@ public:
{
if (data == IN_PROGRESS)
{
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Dark Portal: Starting event.");
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance The Black Morass: Starting event.");
InitWorldState();
m_auiEncounter[1] = IN_PROGRESS;
NextPortal_Timer = 15000;
Events.ScheduleEvent(EVENT_NEXT_PORTAL, 15000);
}
if (data == DONE)
{
//this may be completed further out in the post-event
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Dark Portal: Event completed.");
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance The Black Morass: Event completed.");
Map::PlayerList const& players = instance->GetPlayers();
if (!players.isEmpty())
@@ -231,7 +228,7 @@ public:
if (data == SPECIAL)
{
if (mRiftPortalCount < 7)
NextPortal_Timer = 5000;
Events.ScheduleEvent(EVENT_NEXT_PORTAL, 5000);
}
else
m_auiEncounter[1] = data;
@@ -258,7 +255,7 @@ public:
uint64 GetData64(uint32 data) const
{
if (data == DATA_MEDIVH)
return MedivhGUID;
return _medivhGUID;
return 0;
}
@@ -270,7 +267,7 @@ public:
if (entry == RIFT_BOSS)
entry = RandRiftBoss();
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Dark Portal: Summoning rift boss entry %u.", entry);
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance The Black Morass: Summoning rift boss entry %u.", entry);
Position pos;
me->GetRandomNearPosition(pos, 10.0f);
@@ -281,24 +278,24 @@ public:
if (Creature* summon = me->SummonCreature(entry, pos, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 600000))
return summon;
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Dark Portal: What just happened there? No boss, no loot, no fun...");
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance The Black Morass: What just happened there? No boss, no loot, no fun...");
return NULL;
}
void DoSpawnPortal()
{
if (Creature* pMedivh = instance->GetCreature(MedivhGUID))
if (Creature* medivh = instance->GetCreature(_medivhGUID))
{
uint8 tmp = urand(0, 2);
if (tmp >= CurrentRiftId)
if (tmp >= _currentRiftId)
++tmp;
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Dark Portal: Creating Time Rift at locationId %i (old locationId was %u).", tmp, CurrentRiftId);
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance The Black Morass: Creating Time Rift at locationId %i (old locationId was %u).", tmp, _currentRiftId);
CurrentRiftId = tmp;
_currentRiftId = tmp;
Creature* temp = pMedivh->SummonCreature(C_TIME_RIFT,
Creature* temp = medivh->SummonCreature(NPC_TIME_RIFT,
PortalLocation[tmp][0], PortalLocation[tmp][1], PortalLocation[tmp][2], PortalLocation[tmp][3],
TEMPSUMMON_CORPSE_DESPAWN, 0);
if (temp)
@@ -306,14 +303,14 @@ public:
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
if (Creature* pBoss = SummonedPortalBoss(temp))
if (Creature* boss = SummonedPortalBoss(temp))
{
if (pBoss->GetEntry() == C_AEONUS)
pBoss->AddThreat(pMedivh, 0.0f);
if (boss->GetEntry() == NPC_AEONUS)
boss->AddThreat(medivh, 0.0f);
else
{
pBoss->AddThreat(temp, 0.0f);
temp->CastSpell(pBoss, SPELL_RIFT_CHANNEL, false);
boss->AddThreat(temp, 0.0f);
temp->CastSpell(boss, SPELL_RIFT_CHANNEL, false);
}
}
}
@@ -332,24 +329,24 @@ public:
return;
}
if (NextPortal_Timer)
Events.Update(diff);
if (Events.ExecuteEvent() == EVENT_NEXT_PORTAL)
{
if (NextPortal_Timer <= diff)
{
++mRiftPortalCount;
DoUpdateWorldState(WORLD_STATE_BM_RIFT, mRiftPortalCount);
DoSpawnPortal();
NextPortal_Timer = RiftWaves[GetRiftWaveId()].NextPortalTime;
} else NextPortal_Timer -= diff;
++mRiftPortalCount;
DoUpdateWorldState(WORLD_STATE_BM_RIFT, mRiftPortalCount);
DoSpawnPortal();
Events.ScheduleEvent(EVENT_NEXT_PORTAL, RiftWaves[GetRiftWaveId()].NextPortalTime);
}
}
protected:
EventMap Events;
};
};
void AddSC_instance_dark_portal()
void AddSC_instance_the_black_morass()
{
new instance_dark_portal();
new instance_the_black_morass();
}
@@ -16,12 +16,12 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* ScriptData
SDName: Dark_Portal
SD%Complete: 30
SDComment: Misc NPC's and mobs for instance. Most here far from complete.
SDCategory: Caverns of Time, The Dark Portal
EndScriptData */
/*
Name: The_Black_Morass
%Complete: 30
Comment: Misc NPC's and mobs for instance. Most here far from complete.
Category: Caverns of Time, The Black Morass
*/
/* ContentData
npc_medivh_bm
@@ -32,7 +32,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "dark_portal.h"
#include "the_black_morass.h"
#include "Player.h"
#include "SpellInfo.h"
@@ -125,12 +125,12 @@ public:
return;
uint32 entry = who->GetEntry();
if (entry == C_ASSAS || entry == C_WHELP || entry == C_CHRON || entry == C_EXECU || entry == C_VANQU)
if (entry == NPC_INFINITE_ASSASIN || entry == NPC_INFINITE_WHELP || entry == NPC_INFINITE_CRONOMANCER || entry == NPC_INFINITE_EXECUTIONER || entry == NPC_INFINITE_VANQUISHER)
{
who->StopMoving();
who->CastSpell(me, SPELL_CORRUPT, false);
}
else if (entry == C_AEONUS)
else if (entry == NPC_AEONUS)
{
who->StopMoving();
who->CastSpell(me, SPELL_CORRUPT_AEONUS, false);
@@ -251,9 +251,9 @@ struct Wave
static Wave PortalWaves[]=
{
{ {C_ASSAS, C_WHELP, C_CHRON, 0} },
{ {C_EXECU, C_CHRON, C_WHELP, C_ASSAS} },
{ {C_EXECU, C_VANQU, C_CHRON, C_ASSAS} }
{ {NPC_INFINITE_ASSASIN, NPC_INFINITE_WHELP, NPC_INFINITE_CRONOMANCER, 0} },
{ {NPC_INFINITE_EXECUTIONER, NPC_INFINITE_CRONOMANCER, NPC_INFINITE_WHELP, NPC_INFINITE_ASSASIN} },
{ {NPC_INFINITE_EXECUTIONER, NPC_INFINITE_VANQUISHER, NPC_INFINITE_CRONOMANCER, NPC_INFINITE_ASSASIN} }
};
class npc_time_rift : public CreatureScript
@@ -335,7 +335,7 @@ public:
++mRiftWaveCount;
if (entry == C_WHELP)
if (entry == NPC_INFINITE_WHELP)
{
for (uint8 i = 0; i < 3; ++i)
DoSummonAtRift(entry);
@@ -414,7 +414,7 @@ public:
};
void AddSC_dark_portal()
void AddSC_the_black_morass()
{
new npc_medivh_bm();
new npc_time_rift();
@@ -0,0 +1,67 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
* Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DEF_THEBLACKMORASS_H
#define DEF_THEBLACKMORASS_H
uint32 const EncounterCount = 2;
enum DataTypes
{
TYPE_MEDIVH = 1,
TYPE_RIFT = 2,
TYPE_AEONUS = 3,
TYPE_TEMPORUS = 4,
TYPE_CRONO_LORD_DEJA = 5,
DATA_MEDIVH = 10,
DATA_PORTAL_COUNT = 11,
DATA_SHIELD = 12
};
enum WorldStateIds
{
WORLD_STATE_BM = 2541,
WORLD_STATE_BM_SHIELD = 2540,
WORLD_STATE_BM_RIFT = 2784
};
enum QuestIds
{
QUEST_OPENING_PORTAL = 10297,
QUEST_MASTER_TOUCH = 9836
};
enum CreatureIds
{
NPC_MEDIVH = 15608,
NPC_TIME_RIFT = 17838,
NPC_TIME_KEEPER = 17918,
NPC_RIFT_KEEPER = 21104,
NPC_RIFT_LORD = 17839,
NPC_CRONO_LORD_DEJA = 17879,
NPC_TEMPORUS = 17880,
NPC_AEONUS = 17881,
NPC_INFINITE_ASSASIN = 17835,
NPC_INFINITE_WHELP = 21818,
NPC_INFINITE_CRONOMANCER = 17892,
NPC_INFINITE_EXECUTIONER = 18994,
NPC_INFINITE_VANQUISHER = 18995
};
#endif
@@ -89,14 +89,14 @@ public:
//AmnenarsWrath_Timer
if (AmnenarsWrath_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_AMNENNARSWRATH);
DoCastVictim(SPELL_AMNENNARSWRATH);
AmnenarsWrath_Timer = 12000;
} else AmnenarsWrath_Timer -= diff;
//FrostBolt_Timer
if (FrostBolt_Timer <= diff)
{
DoCast(me->GetVictim(), SPELL_FROSTBOLT);
DoCastVictim(SPELL_FROSTBOLT);
FrostBolt_Timer = 8000;
} else FrostBolt_Timer -= diff;
@@ -109,7 +109,7 @@ public:
if (!Spectrals60 && HealthBelowPct(60))
{
Talk(SAY_SUMMON60);
DoCast(me->GetVictim(), SPELL_FROST_SPECTRES);
DoCastVictim(SPELL_FROST_SPECTRES);
Spectrals60 = true;
}
@@ -122,7 +122,7 @@ public:
if (!Spectrals30 && HealthBelowPct(30))
{
Talk(SAY_SUMMON30);
DoCast(me->GetVictim(), SPELL_FROST_SPECTRES);
DoCastVictim(SPELL_FROST_SPECTRES);
Spectrals30 = true;
}
@@ -152,7 +152,7 @@ public:
{
if (uiWebTimer <= uiDiff)
{
DoCast(me->GetVictim(), SPELL_WEB);
DoCastVictim(SPELL_WEB);
uiWebTimer = urand(7000, 16000);
} else uiWebTimer -= uiDiff;
}
@@ -221,7 +221,7 @@ class boss_ossirian : public CreatureScript
// No kiting!
if (me->GetDistance(me->GetVictim()) > 60.00f && me->GetDistance(me->GetVictim()) < 120.00f)
DoCast(me->GetVictim(), SPELL_SUMMON);
DoCastVictim(SPELL_SUMMON);
bool ApplySupreme = true;
@@ -254,7 +254,7 @@ class boss_ossirian : public CreatureScript
events.ScheduleEvent(EVENT_SILENCE, urand(20000, 30000));
break;
case EVENT_CYCLONE:
DoCast(me->GetVictim(), SPELL_CYCLONE);
DoCastVictim(SPELL_CYCLONE);
events.ScheduleEvent(EVENT_CYCLONE, 20000);
break;
case EVENT_STOMP:
Loaded 100 of 218 files, more files were not shown because too many files have changed in this diff. Show more