Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
This commit is contained in:
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;
|
||||
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
|
||||
+53
-53
@@ -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()
|
||||
+57
-61
@@ -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()
|
||||
+57
-60
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
+71
-74
@@ -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();
|
||||
}
|
||||
+14
-14
@@ -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
Reference in new issue
Block a user