*modified spelldifficulty handler to work with all spell casts for creatures that are in instances thanks to Shauren for help
*modified most of the scripts to use normal_mode spell for casting (code was autogenerated, post errors if any) *added sql for all modded spells (autogenerated..) --HG-- branch : trunk
This commit is contained in:
@@ -123,7 +123,7 @@ struct boss_elder_nadoxAI : public ScriptedAI
|
||||
|
||||
if (uiPlagueTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_BROOD_PLAGUE, H_SPELL_BROOD_PLAGUE));
|
||||
DoCast(m_creature->getVictim(), SPELL_BROOD_PLAGUE);
|
||||
uiPlagueTimer = 15*IN_MILISECONDS;
|
||||
} else uiPlagueTimer -= diff;
|
||||
|
||||
|
||||
@@ -261,20 +261,20 @@ struct boss_volazjAI : public ScriptedAI
|
||||
|
||||
if (uiMindFlayTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MIND_FLAY, H_SPELL_MIND_FLAY));
|
||||
DoCast(m_creature->getVictim(), SPELL_MIND_FLAY);
|
||||
uiMindFlayTimer = 20*IN_MILISECONDS;
|
||||
} else uiMindFlayTimer -= diff;
|
||||
|
||||
if (uiShadowBoltVolleyTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SHADOW_BOLT_VOLLEY, H_SPELL_SHADOW_BOLT_VOLLEY));
|
||||
DoCast(m_creature->getVictim(), SPELL_SHADOW_BOLT_VOLLEY);
|
||||
uiShadowBoltVolleyTimer = 5*IN_MILISECONDS;
|
||||
} else uiShadowBoltVolleyTimer -= diff;
|
||||
|
||||
if (uiShiverTimer <= diff)
|
||||
{
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_SHIVER, H_SPELL_SHIVER));
|
||||
DoCast(pTarget, SPELL_SHIVER);
|
||||
uiShiverTimer = 15*IN_MILISECONDS;
|
||||
} else uiShiverTimer -= diff;
|
||||
|
||||
|
||||
@@ -303,7 +303,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI
|
||||
|
||||
if (uiCycloneTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_CYCLONE_STRIKE, SPELL_CYCLONE_STRIKE_H), false);
|
||||
DoCast(m_creature, SPELL_CYCLONE_STRIKE, false);
|
||||
uiCycloneTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS);
|
||||
} else uiCycloneTimer -= diff;
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ struct boss_taldaramAI : public ScriptedAI
|
||||
break;
|
||||
case VANISHED:
|
||||
if (Unit *pEmbraceTarget = GetEmbraceTarget())
|
||||
DoCast(pEmbraceTarget, DUNGEON_MODE(SPELL_EMBRACE_OF_THE_VAMPYR, H_SPELL_EMBRACE_OF_THE_VAMPYR));
|
||||
DoCast(pEmbraceTarget, SPELL_EMBRACE_OF_THE_VAMPYR);
|
||||
m_creature->GetMotionMaster()->Clear();
|
||||
m_creature->SetSpeed(MOVE_WALK, 1.0f, true);
|
||||
m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim());
|
||||
@@ -338,7 +338,7 @@ struct mob_taldaram_flamesphereAI : public ScriptedAI
|
||||
m_creature->SetFloatValue(OBJECT_FIELD_SCALE_X, 1.0f);
|
||||
DoCast(m_creature, SPELL_FLAME_SPHERE_VISUAL);
|
||||
DoCast(m_creature, SPELL_FLAME_SPHERE_SPAWN_EFFECT);
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_FLAME_SPHERE_PERIODIC, H_SPELL_FLAME_SPHERE_PERIODIC));
|
||||
DoCast(m_creature, SPELL_FLAME_SPHERE_PERIODIC);
|
||||
uiDespawnTimer = 10*IN_MILISECONDS;
|
||||
}
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@ struct boss_anub_arakAI : public ScriptedAI
|
||||
|
||||
if (uiPoundTimer <= diff)
|
||||
{
|
||||
DoCastVictim(DUNGEON_MODE(SPELL_POUND, H_SPELL_POUND));
|
||||
DoCastVictim(SPELL_POUND);
|
||||
uiPoundTimer = 16.5*IN_MILISECONDS;
|
||||
} else uiPoundTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ struct boss_hadronoxAI : public ScriptedAI
|
||||
if (uiAcidTimer <= diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_ACID_CLOUD, H_SPELL_ACID_CLOUD));
|
||||
DoCast(pTarget, SPELL_ACID_CLOUD);
|
||||
|
||||
uiAcidTimer = urand(20*IN_MILISECONDS,30*IN_MILISECONDS);
|
||||
} else uiAcidTimer -= diff;
|
||||
@@ -167,7 +167,7 @@ struct boss_hadronoxAI : public ScriptedAI
|
||||
if (uiLeechTimer <= diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_LEECH_POISON, H_SPELL_LEECH_POISON));
|
||||
DoCast(pTarget, SPELL_LEECH_POISON);
|
||||
|
||||
uiLeechTimer = urand(11*IN_MILISECONDS,14*IN_MILISECONDS);
|
||||
} else uiLeechTimer -= diff;
|
||||
@@ -175,7 +175,7 @@ struct boss_hadronoxAI : public ScriptedAI
|
||||
if (uiGrabTimer <= diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) // Draws all players (and attacking Mobs) to itself.
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_WEB_GRAB, H_SPELL_WEB_GRAB));
|
||||
DoCast(pTarget, SPELL_WEB_GRAB);
|
||||
|
||||
uiGrabTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS);
|
||||
} else uiGrabTimer -= diff;
|
||||
|
||||
@@ -157,7 +157,7 @@ struct boss_krik_thirAI : public ScriptedAI
|
||||
|
||||
if (uiMindFlayTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MIND_FLAY, H_SPELL_MIND_FLAY));
|
||||
DoCast(m_creature->getVictim(), SPELL_MIND_FLAY);
|
||||
uiMindFlayTimer = 15*IN_MILISECONDS;
|
||||
} else uiMindFlayTimer -= diff;
|
||||
|
||||
@@ -167,8 +167,8 @@ struct boss_krik_thirAI : public ScriptedAI
|
||||
Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
|
||||
Unit *pTarget_1 = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true);
|
||||
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_CURSE_OF_FATIGUE, H_SPELL_CURSE_OF_FATIGUE));
|
||||
DoCast(pTarget_1, DUNGEON_MODE(SPELL_CURSE_OF_FATIGUE, H_SPELL_CURSE_OF_FATIGUE));
|
||||
DoCast(pTarget, SPELL_CURSE_OF_FATIGUE);
|
||||
DoCast(pTarget_1, SPELL_CURSE_OF_FATIGUE);
|
||||
|
||||
uiCurseFatigueTimer = 10*IN_MILISECONDS;
|
||||
} else uiCurseFatigueTimer -= diff;
|
||||
@@ -215,7 +215,7 @@ struct npc_skittering_infectorAI : public ScriptedAI
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
//The spell is not working propperly
|
||||
DoCast(m_creature->getVictim(),DUNGEON_MODE(SPELL_ACID_SPLASH, H_SPELL_ACID_SPLASH), true);
|
||||
DoCast(m_creature->getVictim(),SPELL_ACID_SPLASH, true);
|
||||
}
|
||||
|
||||
};
|
||||
@@ -281,13 +281,13 @@ struct npc_anub_ar_shadowcasterAI : public ScriptedAI
|
||||
if (uiShadowBoltTimer <= diff)
|
||||
{
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT), true);
|
||||
DoCast(pTarget, SPELL_SHADOW_BOLT, true);
|
||||
uiShadowBoltTimer = 15*IN_MILISECONDS;
|
||||
} else uiShadowBoltTimer -= diff;
|
||||
|
||||
if (uiShadowNovaTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SHADOW_NOVA, H_SPELL_SHADOW_NOVA), true);
|
||||
DoCast(m_creature->getVictim(), SPELL_SHADOW_NOVA, true);
|
||||
uiShadowNovaTimer = 17*IN_MILISECONDS;
|
||||
} else uiShadowNovaTimer -= diff;
|
||||
|
||||
@@ -363,7 +363,7 @@ struct npc_watcher_gashraAI : public ScriptedAI
|
||||
|
||||
if (uiInfectedBiteTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true);
|
||||
DoCast(m_creature->getVictim(), SPELL_INFECTED_BITE, true);
|
||||
uiInfectedBiteTimer = 15*IN_MILISECONDS;
|
||||
} else uiInfectedBiteTimer -= diff;
|
||||
|
||||
@@ -400,13 +400,13 @@ struct npc_watcher_narjilAI : public ScriptedAI
|
||||
|
||||
if (uiInfectedBiteTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true);
|
||||
DoCast(m_creature->getVictim(), SPELL_INFECTED_BITE, true);
|
||||
uiInfectedBiteTimer = 11*IN_MILISECONDS;
|
||||
} else uiInfectedBiteTimer -= diff;
|
||||
|
||||
if (uiBindingWebsTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_BLINDING_WEBS, H_SPELL_BLINDING_WEBS), true);
|
||||
DoCast(m_creature->getVictim(), SPELL_BLINDING_WEBS, true);
|
||||
uiBindingWebsTimer = 17*IN_MILISECONDS;
|
||||
} else uiBindingWebsTimer -= diff;
|
||||
|
||||
@@ -444,13 +444,13 @@ struct npc_watcher_silthikAI : public ScriptedAI
|
||||
|
||||
if (uiInfectedBiteTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true);
|
||||
DoCast(m_creature->getVictim(), SPELL_INFECTED_BITE, true);
|
||||
uiInfectedBiteTimer = 15*IN_MILISECONDS;
|
||||
} else uiInfectedBiteTimer -= diff;
|
||||
|
||||
if (uiPoisonSprayTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_POSION_SPRAY, H_SPELL_POSION_SPRAY), true);
|
||||
DoCast(m_creature->getVictim(), SPELL_POSION_SPRAY, true);
|
||||
uiPoisonSprayTimer = 17*IN_MILISECONDS;
|
||||
} else uiPoisonSprayTimer -= diff;
|
||||
|
||||
|
||||
+7
-7
@@ -243,7 +243,7 @@ struct boss_paletressAI : public ScriptedAI
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 250, true))
|
||||
{
|
||||
if (pTarget && pTarget->isAlive())
|
||||
DoCast(pTarget,DUNGEON_MODE(SPELL_HOLY_FIRE,SPELL_HOLY_FIRE_H));
|
||||
DoCast(pTarget,SPELL_HOLY_FIRE);
|
||||
}
|
||||
if (m_creature->HasAura(SPELL_SHIELD))
|
||||
uiHolyFireTimer = 13000;
|
||||
@@ -256,7 +256,7 @@ struct boss_paletressAI : public ScriptedAI
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 250, true))
|
||||
{
|
||||
if (pTarget && pTarget->isAlive())
|
||||
DoCast(pTarget,DUNGEON_MODE(SPELL_SMITE,SPELL_SMITE_H));
|
||||
DoCast(pTarget,SPELL_SMITE);
|
||||
}
|
||||
if (m_creature->HasAura(SPELL_SHIELD))
|
||||
uiHolySmiteTimer = 9000;
|
||||
@@ -272,12 +272,12 @@ struct boss_paletressAI : public ScriptedAI
|
||||
switch(uiTarget)
|
||||
{
|
||||
case 0:
|
||||
DoCast(m_creature,DUNGEON_MODE(SPELL_RENEW,SPELL_RENEW_H));
|
||||
DoCast(m_creature,SPELL_RENEW);
|
||||
break;
|
||||
case 1:
|
||||
if (Creature *pMemory = Unit::GetCreature(*m_creature, MemoryGUID))
|
||||
if (pMemory->isAlive())
|
||||
DoCast(pMemory, DUNGEON_MODE(SPELL_RENEW,SPELL_RENEW_H));
|
||||
DoCast(pMemory, SPELL_RENEW);
|
||||
break;
|
||||
}
|
||||
uiRenewTimer = urand(15000,17000);
|
||||
@@ -334,14 +334,14 @@ struct npc_memoryAI : public ScriptedAI
|
||||
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
|
||||
{
|
||||
if (pTarget && pTarget->isAlive())
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_OLD_WOUNDS,SPELL_OLD_WOUNDS_H));
|
||||
DoCast(pTarget, SPELL_OLD_WOUNDS);
|
||||
}
|
||||
uiOldWoundsTimer = 12000;
|
||||
}else uiOldWoundsTimer -= uiDiff;
|
||||
|
||||
if (uiWakingNightmare <= uiDiff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_WAKING_NIGHTMARE,SPELL_WAKING_NIGHTMARE_H));
|
||||
DoCast(m_creature, SPELL_WAKING_NIGHTMARE);
|
||||
uiWakingNightmare = 7000;
|
||||
}else uiWakingNightmare -= uiDiff;
|
||||
|
||||
@@ -350,7 +350,7 @@ struct npc_memoryAI : public ScriptedAI
|
||||
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,1))
|
||||
{
|
||||
if (pTarget && pTarget->isAlive())
|
||||
DoCast(pTarget,DUNGEON_MODE(SPELL_SHADOWS_PAST,SPELL_SHADOWS_PAST_H));
|
||||
DoCast(pTarget,SPELL_SHADOWS_PAST);
|
||||
}
|
||||
uiShadowPastTimer = 5000;
|
||||
}else uiShadowPastTimer -= uiDiff;
|
||||
|
||||
+5
-5
@@ -170,17 +170,17 @@ struct boss_black_knightAI : public ScriptedAI
|
||||
{
|
||||
if (uiIcyTouchTimer <= uiDiff)
|
||||
{
|
||||
DoCastVictim(DUNGEON_MODE(SPELL_ICY_TOUCH,SPELL_ICY_TOUCH_H));
|
||||
DoCastVictim(SPELL_ICY_TOUCH);
|
||||
uiIcyTouchTimer = urand(5000,7000);
|
||||
} else uiIcyTouchTimer -= uiDiff;
|
||||
if (uiPlagueStrikeTimer <= uiDiff)
|
||||
{
|
||||
DoCastVictim(DUNGEON_MODE(SPELL_ICY_TOUCH,SPELL_ICY_TOUCH_H));
|
||||
DoCastVictim(SPELL_ICY_TOUCH);
|
||||
uiPlagueStrikeTimer = urand(12000,15000);
|
||||
} else uiPlagueStrikeTimer -= uiDiff;
|
||||
if (uiObliterateTimer <= uiDiff)
|
||||
{
|
||||
DoCastVictim(DUNGEON_MODE(SPELL_OBLITERATE,SPELL_OBLITERATE_H));
|
||||
DoCastVictim(SPELL_OBLITERATE);
|
||||
uiObliterateTimer = urand(17000,19000);
|
||||
} else uiObliterateTimer -= uiDiff;
|
||||
switch(uiPhase)
|
||||
@@ -237,7 +237,7 @@ struct boss_black_knightAI : public ScriptedAI
|
||||
{
|
||||
if (uiDeathBiteTimer <= uiDiff)
|
||||
{
|
||||
DoCastAOE(DUNGEON_MODE(SPELL_DEATH_BITE,SPELL_DEATH_BITE_H));
|
||||
DoCastAOE(SPELL_DEATH_BITE);
|
||||
uiDeathBiteTimer = urand (2000, 4000);
|
||||
} else uiDeathBiteTimer -= uiDiff;
|
||||
if (uiMarkedDeathTimer <= uiDiff)
|
||||
@@ -311,7 +311,7 @@ struct npc_risen_ghoulAI : public ScriptedAI
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true))
|
||||
{
|
||||
if (pTarget && pTarget->isAlive())
|
||||
DoCast(pTarget, (DUNGEON_MODE(SPELL_LEAP,SPELL_LEAP_H)));
|
||||
DoCast(pTarget, (SPELL_LEAP));
|
||||
}
|
||||
uiAttackTimer = 3500;
|
||||
} else uiAttackTimer -= uiDiff;
|
||||
|
||||
+10
-10
@@ -399,7 +399,7 @@ struct boss_warrior_toc5AI : public ScriptedAI
|
||||
|
||||
if (uiMortalStrikeTimer <= uiDiff)
|
||||
{
|
||||
DoCastVictim(DUNGEON_MODE(SPELL_MORTAL_STRIKE, SPELL_MORTAL_STRIKE_H));
|
||||
DoCastVictim(SPELL_MORTAL_STRIKE);
|
||||
uiMortalStrikeTimer = urand(8000,12000);
|
||||
} else uiMortalStrikeTimer -= uiDiff;
|
||||
|
||||
@@ -502,7 +502,7 @@ struct boss_mage_toc5AI : public ScriptedAI
|
||||
if (uiFireBallTimer <= uiDiff)
|
||||
{
|
||||
if (m_creature->getVictim())
|
||||
DoCastVictim(DUNGEON_MODE(SPELL_FIREBALL,SPELL_FIREBALL_H));
|
||||
DoCastVictim(SPELL_FIREBALL);
|
||||
uiFireBallTimer = 5000;
|
||||
} else uiFireBallTimer -= uiDiff;
|
||||
|
||||
@@ -512,20 +512,20 @@ struct boss_mage_toc5AI : public ScriptedAI
|
||||
|
||||
if (uiFireBallTimer <= uiDiff)
|
||||
{
|
||||
DoCastVictim(DUNGEON_MODE(SPELL_FIREBALL,SPELL_FIREBALL_H));
|
||||
DoCastVictim(SPELL_FIREBALL);
|
||||
uiFireBallTimer = 5000;
|
||||
} else uiFireBallTimer -= uiDiff;
|
||||
|
||||
if (uiPolymorphTimer <= uiDiff)
|
||||
{
|
||||
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_POLYMORPH,SPELL_POLYMORPH_H));
|
||||
DoCast(pTarget, SPELL_POLYMORPH);
|
||||
uiPolymorphTimer = 8000;
|
||||
} else uiPolymorphTimer -= uiDiff;
|
||||
|
||||
if (uiBlastWaveTimer <= uiDiff)
|
||||
{
|
||||
DoCastAOE(DUNGEON_MODE(SPELL_BLAST_WAVE,SPELL_BLAST_WAVE_H),false);
|
||||
DoCastAOE(SPELL_BLAST_WAVE,false);
|
||||
uiBlastWaveTimer = 13000;
|
||||
} else uiBlastWaveTimer -= uiDiff;
|
||||
|
||||
@@ -645,7 +645,7 @@ struct boss_shaman_toc5AI : public ScriptedAI
|
||||
if (uiChainLightningTimer <= uiDiff)
|
||||
{
|
||||
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
|
||||
DoCast(pTarget,DUNGEON_MODE(SPELL_CHAIN_LIGHTNING,SPELL_CHAIN_LIGHTNING_H));
|
||||
DoCast(pTarget,SPELL_CHAIN_LIGHTNING);
|
||||
|
||||
uiChainLightningTimer = 16000;
|
||||
} else uiChainLightningTimer -= uiDiff;
|
||||
@@ -657,9 +657,9 @@ struct boss_shaman_toc5AI : public ScriptedAI
|
||||
if (!bChance)
|
||||
{
|
||||
if (Unit* pFriend = DoSelectLowestHpFriendly(40))
|
||||
DoCast(pFriend,DUNGEON_MODE(SPELL_HEALING_WAVE,SPELL_HEALING_WAVE_H));
|
||||
DoCast(pFriend,SPELL_HEALING_WAVE);
|
||||
} else
|
||||
DoCast(m_creature,DUNGEON_MODE(SPELL_HEALING_WAVE,SPELL_HEALING_WAVE_H));
|
||||
DoCast(m_creature,SPELL_HEALING_WAVE);
|
||||
|
||||
uiHealingWaveTimer = 12000;
|
||||
} else uiHealingWaveTimer -= uiDiff;
|
||||
@@ -793,7 +793,7 @@ struct boss_hunter_toc5AI : public ScriptedAI
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_FARTHEST,0,30.0f))
|
||||
{
|
||||
uiTargetGUID = pTarget->GetGUID();
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_SHOOT,SPELL_SHOOT_H));
|
||||
DoCast(pTarget, SPELL_SHOOT);
|
||||
}
|
||||
uiShootTimer = 12000;
|
||||
uiMultiShotTimer = 3000;
|
||||
@@ -925,7 +925,7 @@ struct boss_rouge_toc5AI : public ScriptedAI
|
||||
|
||||
if (uiEviscerateTimer <= uiDiff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),DUNGEON_MODE(SPELL_EVISCERATE,SPELL_EVISCERATE_H));
|
||||
DoCast(m_creature->getVictim(),SPELL_EVISCERATE);
|
||||
uiEviscerateTimer = 8000;
|
||||
} else uiEviscerateTimer -= uiDiff;
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@ struct boss_dredAI : public ScriptedAI
|
||||
|
||||
if (uiFearsomeRoarTimer < diff)
|
||||
{
|
||||
DoCastAOE(DUNGEON_MODE(SPELL_FEARSOME_ROAR, H_SPELL_FEARSOME_ROAR),false);
|
||||
DoCastAOE(SPELL_FEARSOME_ROAR,false);
|
||||
uiFearsomeRoarTimer = urand(16*IN_MILISECONDS,18*IN_MILISECONDS);
|
||||
} else uiFearsomeRoarTimer -=diff;
|
||||
|
||||
|
||||
@@ -116,19 +116,19 @@ struct boss_tharon_jaAI : public ScriptedAI
|
||||
if (uiCurseOfLifeTimer < diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_CURSE_OF_LIFE, H_SPELL_CURSE_OF_LIFE));
|
||||
DoCast(pTarget, SPELL_CURSE_OF_LIFE);
|
||||
uiCurseOfLifeTimer = urand(10*IN_MILISECONDS,15*IN_MILISECONDS);
|
||||
} else uiCurseOfLifeTimer -= diff;
|
||||
|
||||
if (uiShadowVolleyTimer < diff)
|
||||
{
|
||||
DoCastVictim(DUNGEON_MODE(SPELL_SHADOW_VOLLEY,H_SPELL_SHADOW_VOLLEY));
|
||||
DoCastVictim(SPELL_SHADOW_VOLLEY);
|
||||
uiShadowVolleyTimer = urand(8*IN_MILISECONDS,10*IN_MILISECONDS);
|
||||
} else uiShadowVolleyTimer -= diff;
|
||||
|
||||
if (uiRainOfFireTimer < diff)
|
||||
{
|
||||
DoCastAOE(DUNGEON_MODE(SPELL_RAIN_OF_FIRE,H_SPELL_RAIN_OF_FIRE));
|
||||
DoCastAOE(SPELL_RAIN_OF_FIRE);
|
||||
uiRainOfFireTimer = urand(14*IN_MILISECONDS,18*IN_MILISECONDS);
|
||||
} else uiRainOfFireTimer -= diff;
|
||||
|
||||
@@ -167,20 +167,20 @@ struct boss_tharon_jaAI : public ScriptedAI
|
||||
if (uiLightningBreathTimer < diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_LIGHTNING_BREATH, H_SPELL_LIGHTNING_BREATH));
|
||||
DoCast(pTarget, SPELL_LIGHTNING_BREATH);
|
||||
uiLightningBreathTimer = urand(6*IN_MILISECONDS,7*IN_MILISECONDS);
|
||||
} else uiLightningBreathTimer -= diff;
|
||||
|
||||
if (uiEyeBeamTimer < diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_EYE_BEAM, H_SPELL_EYE_BEAM));
|
||||
DoCast(pTarget, SPELL_EYE_BEAM);
|
||||
uiEyeBeamTimer = urand(4*IN_MILISECONDS,6*IN_MILISECONDS);
|
||||
} else uiEyeBeamTimer -= diff;
|
||||
|
||||
if (uiPoisonCloudTimer < diff)
|
||||
{
|
||||
DoCastAOE(DUNGEON_MODE(SPELL_POISON_CLOUD, H_SPELL_POISON_CLOUD));
|
||||
DoCastAOE(SPELL_POISON_CLOUD);
|
||||
uiPoisonCloudTimer = urand(10*IN_MILISECONDS,12*IN_MILISECONDS);
|
||||
} else uiPoisonCloudTimer -= diff;
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@ struct boss_trollgoreAI : public ScriptedAI
|
||||
if (uiConsumeTimer <= diff)
|
||||
{
|
||||
DoScriptText(SAY_CONSUME, m_creature);
|
||||
DoCast(DUNGEON_MODE(SPELL_CONSUME, H_SPELL_CONSUME));
|
||||
DoCast(SPELL_CONSUME);
|
||||
uiConsumeTimer = 15*IN_MILISECONDS;
|
||||
} else uiConsumeTimer -= diff;
|
||||
|
||||
@@ -144,7 +144,7 @@ struct boss_trollgoreAI : public ScriptedAI
|
||||
|
||||
if (uiExplodeCorpseTimer <= diff)
|
||||
{
|
||||
DoCast(DUNGEON_MODE(SPELL_CORPSE_EXPLODE, H_SPELL_CORPSE_EXPLODE));
|
||||
DoCast(SPELL_CORPSE_EXPLODE);
|
||||
DoScriptText(SAY_EXPLODE, m_creature);
|
||||
uiExplodeCorpseTimer = urand(15*IN_MILISECONDS,19*IN_MILISECONDS);
|
||||
} else uiExplodeCorpseTimer -= diff;
|
||||
|
||||
@@ -180,7 +180,7 @@ struct boss_bronjahmAI : public ScriptedAI
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT, 2000);
|
||||
break;
|
||||
case EVENT_MAGIC_BANE:
|
||||
DoCastVictim(DUNGEON_MODE(SPELL_MAGIC_S_BANE,H_SPELL_MAGIC_S_BANE));
|
||||
DoCastVictim(SPELL_MAGIC_S_BANE);
|
||||
events.ScheduleEvent(EVENT_MAGIC_BANE, urand(8000,15000));
|
||||
break;
|
||||
}
|
||||
@@ -217,7 +217,7 @@ struct mob_corrupted_soul_fragmentAI : public ScriptedAI
|
||||
{
|
||||
if (pInstance)
|
||||
if (Creature* pBronjham = Unit::GetCreature(*m_creature,pInstance->GetData64(DATA_BRONJAHM)))
|
||||
DoCast(pBronjham,DUNGEON_MODE(SPELL_CONSUME_SOUL,H_SPELL_CONSUME_SOUL));
|
||||
DoCast(pBronjham,SPELL_CONSUME_SOUL);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff) {}
|
||||
|
||||
@@ -247,7 +247,7 @@ struct boss_devourer_of_soulsAI : public ScriptedAI
|
||||
{
|
||||
case EVENT_PHANTOM_BLAST:
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO, 0))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_PHANTOM_BLAST,H_SPELL_PHANTOM_BLAST));
|
||||
DoCast(pTarget, SPELL_PHANTOM_BLAST);
|
||||
events.ScheduleEvent(EVENT_PHANTOM_BLAST, 5000);
|
||||
break;
|
||||
case EVENT_MIRRORED_SOUL:
|
||||
|
||||
@@ -411,7 +411,7 @@ struct mob_spiteful_apparitionAI: public ScriptedAI
|
||||
switch(eventId)
|
||||
{
|
||||
case EVENT_SPITE:
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SPITE,H_SPELL_SPITE));
|
||||
DoCast(m_creature->getVictim(), SPELL_SPITE);
|
||||
events.RescheduleEvent(EVENT_SPITE, 8000);
|
||||
return;
|
||||
}
|
||||
@@ -461,7 +461,7 @@ struct mob_spectral_wardenAI: public ScriptedAI
|
||||
return;
|
||||
case EVENT_WAIL_OF_SOULS:
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_WAIL_OF_SOULS,H_SPELL_WAIL_OF_SOULS));
|
||||
DoCast(pTarget, SPELL_WAIL_OF_SOULS);
|
||||
events.RescheduleEvent(EVENT_WAIL_OF_SOULS, 5000);
|
||||
return;
|
||||
}
|
||||
@@ -553,7 +553,7 @@ struct mob_soulguard_reaperAI: public ScriptedAI
|
||||
switch(eventId)
|
||||
{
|
||||
case EVENT_FROST_NOVA:
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_FROST_NOVA,H_SPELL_FROST_NOVA));
|
||||
DoCast(m_creature, SPELL_FROST_NOVA);
|
||||
events.RescheduleEvent(EVENT_FROST_NOVA, 9600);
|
||||
return;
|
||||
case EVENT_SHADOW_LANCE:
|
||||
@@ -604,7 +604,7 @@ struct mob_soulguard_bonecasterAI: public ScriptedAI
|
||||
switch(eventId)
|
||||
{
|
||||
case EVENT_BONE_VOLLEY:
|
||||
DoCastAOE(DUNGEON_MODE(SPELL_BONE_VOLLEY,H_SPELL_BONE_VOLLEY));
|
||||
DoCastAOE(SPELL_BONE_VOLLEY);
|
||||
events.RescheduleEvent(EVENT_BONE_VOLLEY, 7000);
|
||||
return;
|
||||
case EVENT_RAISE_DEAD:
|
||||
@@ -612,7 +612,7 @@ struct mob_soulguard_bonecasterAI: public ScriptedAI
|
||||
events.RescheduleEvent(EVENT_RAISE_DEAD, 25000);
|
||||
return;
|
||||
case EVENT_SHIELD_OF_BONES:
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_SHIELD_OF_BONES,H_SPELL_SHIELD_OF_BONES));
|
||||
DoCast(m_creature, SPELL_SHIELD_OF_BONES);
|
||||
events.RescheduleEvent(EVENT_SHIELD_OF_BONES, 8000);
|
||||
return;
|
||||
}
|
||||
@@ -664,7 +664,7 @@ struct mob_soulguard_animatorAI: public ScriptedAI
|
||||
return;
|
||||
case EVENT_SHADOW_BOLT:
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_SHADOW_BOLT,H_SPELL_SHADOW_BOLT));
|
||||
DoCast(pTarget, SPELL_SHADOW_BOLT);
|
||||
events.RescheduleEvent(EVENT_SHADOW_BOLT, 5000);
|
||||
return;
|
||||
case EVENT_SOUL_SICKNESS:
|
||||
@@ -726,16 +726,16 @@ struct mob_soulguard_adeptAI: public ScriptedAI
|
||||
return;
|
||||
case EVENT_SHADOW_BOLT:
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_SHADOW_BOLT,H_SPELL_SHADOW_BOLT));
|
||||
DoCast(pTarget, SPELL_SHADOW_BOLT);
|
||||
events.RescheduleEvent(EVENT_SHADOW_BOLT, 4000);
|
||||
return;
|
||||
case EVENT_DRAIN_LIFE:
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_DRAIN_LIFE,H_SPELL_DRAIN_LIFE));
|
||||
DoCast(pTarget, SPELL_DRAIN_LIFE);
|
||||
events.RescheduleEvent(EVENT_DRAIN_LIFE, 9000);
|
||||
return;
|
||||
case EVENT_SHADOW_MEND:
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_SHADOW_MEND,H_SPELL_SHADOW_MEND));
|
||||
DoCast(m_creature, SPELL_SHADOW_MEND);
|
||||
events.RescheduleEvent(EVENT_SHADOW_MEND, 20000);
|
||||
return;
|
||||
}
|
||||
@@ -779,7 +779,7 @@ struct mob_soul_horrorAI: public ScriptedAI
|
||||
switch(eventId)
|
||||
{
|
||||
case EVENT_SOUL_STRIKE:
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SOUL_STRIKE,H_SPELL_SOUL_STRIKE));
|
||||
DoCast(m_creature->getVictim(), SPELL_SOUL_STRIKE);
|
||||
events.RescheduleEvent(EVENT_SOUL_STRIKE, 8000);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ struct boss_garfrostAI : public ScriptedAI
|
||||
phase2 = true;
|
||||
DoCast(m_creature, SPELL_THUNDERING_STOMP);
|
||||
// TODO: should go to a forge
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_FORGE_BLADE, H_SPELL_FORGE_BLADE));
|
||||
DoCast(m_creature, SPELL_FORGE_BLADE);
|
||||
// TODO: should equip when spell completes
|
||||
SetEquipmentSlots(false, EQUIP_ID_SWORD, -1, -1);
|
||||
m_creature->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE);
|
||||
@@ -117,7 +117,7 @@ struct boss_garfrostAI : public ScriptedAI
|
||||
phase3 = true;
|
||||
DoCast(m_creature, SPELL_THUNDERING_STOMP);
|
||||
// TODO: should go to a forge
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_FORGE_MACE, H_SPELL_FORGE_MACE));
|
||||
DoCast(m_creature, SPELL_FORGE_MACE);
|
||||
// TODO: should equip when spell completes
|
||||
SetEquipmentSlots(false, EQUIP_ID_MACE, -1, -1);
|
||||
m_creature->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE);
|
||||
@@ -180,11 +180,11 @@ struct boss_garfrostAI : public ScriptedAI
|
||||
return;
|
||||
case EVENT_DEEPFREEZE:
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_DEEP_FREEZE, H_SPELL_DEEP_FREEZE));
|
||||
DoCast(pTarget, SPELL_DEEP_FREEZE);
|
||||
events.RescheduleEvent(EVENT_DEEPFREEZE, 35000);
|
||||
return;
|
||||
case EVENT_CHILLINGWAVE:
|
||||
DoCastAOE(DUNGEON_MODE(SPELL_CHILLING_WAVE, H_SPELL_CHILLING_WAVE));
|
||||
DoCastAOE(SPELL_CHILLING_WAVE);
|
||||
events.RescheduleEvent(EVENT_CHILLINGWAVE, 40000);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -223,12 +223,12 @@ struct boss_ickAI : public ScriptedAI
|
||||
DoScriptText(SAY_KRICK_POISON_NOVA, pKrick);
|
||||
|
||||
DoScriptText(SAY_ICK_POISON_NOVA, m_creature);
|
||||
DoCastAOE(DUNGEON_MODE(SPELL_POISON_NOVA,H_SPELL_POISON_NOVA));
|
||||
DoCastAOE(SPELL_POISON_NOVA);
|
||||
events.ScheduleEvent(EVENT_POISON_NOVA, 30000, GCD_1);
|
||||
return;
|
||||
|
||||
case EVENT_TOXIC_WASTE:
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_TOXIC_WASTE,H_SPELL_TOXIC_WASTE));
|
||||
DoCast(m_creature->getVictim(), SPELL_TOXIC_WASTE);
|
||||
events.ScheduleEvent(EVENT_TOXIC_WASTE, 5000);
|
||||
return;
|
||||
|
||||
|
||||
@@ -156,7 +156,7 @@ struct boss_tyrannusAI : public ScriptedAI
|
||||
switch(eventId)
|
||||
{
|
||||
case EVENT_FORCEFUL_SMASH:
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_FORCEFUL_SMASH, H_SPELL_FORCEFUL_SMASH));
|
||||
DoCast(m_creature->getVictim(), SPELL_FORCEFUL_SMASH);
|
||||
events.ScheduleEvent(EVENT_FORCEFUL_SMASH, 10000);
|
||||
return;
|
||||
case EVENT_OVERLORDS_BRAND:
|
||||
@@ -167,7 +167,7 @@ struct boss_tyrannusAI : public ScriptedAI
|
||||
case EVENT_DARK_MIGHT:
|
||||
DoScriptText(SAY_DARK_MIGHT_1, m_creature);
|
||||
DoScriptText(SAY_DARK_MIGHT_2, m_creature);
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_DARK_MIGHT, H_SPELL_DARK_MIGHT));
|
||||
DoCast(m_creature, SPELL_DARK_MIGHT);
|
||||
events.ScheduleEvent(EVENT_DARK_MIGHT, 60000);
|
||||
return;
|
||||
}
|
||||
@@ -235,12 +235,12 @@ struct boss_rimefangAI : public ScriptedAI
|
||||
return;
|
||||
case EVENT_ICY_BLAST:
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_ICY_BLAST, H_SPELL_ICY_BLAST));
|
||||
DoCast(pTarget, SPELL_ICY_BLAST);
|
||||
events.ScheduleEvent(EVENT_ICY_BLAST_2, 5000);
|
||||
return;
|
||||
case EVENT_ICY_BLAST_2:
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
DoCast(pTarget->getVictim(), DUNGEON_MODE(SPELL_ICY_BLAST_2, H_SPELL_ICY_BLAST_2));
|
||||
DoCast(pTarget->getVictim(), SPELL_ICY_BLAST_2);
|
||||
events.ScheduleEvent(EVENT_ICY_BLAST, 30000);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -267,13 +267,13 @@ struct npc_living_mojoAI : public ScriptedAI
|
||||
|
||||
if (uiMojoWaveTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MOJO_WAVE, H_SPELL_MOJO_WAVE));
|
||||
DoCast(m_creature->getVictim(), SPELL_MOJO_WAVE);
|
||||
uiMojoWaveTimer = 15*IN_MILISECONDS;
|
||||
} else uiMojoWaveTimer -= diff;
|
||||
|
||||
if (uiMojoPuddleTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MOJO_PUDDLE, H_SPELL_MOJO_PUDDLE));
|
||||
DoCast(m_creature->getVictim(), SPELL_MOJO_PUDDLE);
|
||||
uiMojoPuddleTimer = 18*IN_MILISECONDS;
|
||||
} else uiMojoPuddleTimer -= diff;
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@ struct boss_gal_darahAI : public ScriptedAI
|
||||
|
||||
if (uiWhirlingSlashTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_WHIRLING_SLASH, H_SPELL_WHIRLING_SLASH));
|
||||
DoCast(m_creature->getVictim(), SPELL_WHIRLING_SLASH);
|
||||
uiWhirlingSlashTimer = 21*IN_MILISECONDS;
|
||||
++uiPhaseCounter;
|
||||
} else uiWhirlingSlashTimer -= diff;
|
||||
@@ -205,19 +205,19 @@ struct boss_gal_darahAI : public ScriptedAI
|
||||
{
|
||||
if (uiPunctureTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_PUNCTURE, H_SPELL_PUNCTURE));
|
||||
DoCast(m_creature->getVictim(), SPELL_PUNCTURE);
|
||||
uiPunctureTimer = 8*IN_MILISECONDS;
|
||||
} else uiPunctureTimer -= diff;
|
||||
|
||||
if (uiEnrageTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_ENRAGE, H_SPELL_ENRAGE));
|
||||
DoCast(m_creature->getVictim(), SPELL_ENRAGE);
|
||||
uiEnrageTimer = 20*IN_MILISECONDS;
|
||||
} else uiEnrageTimer -= diff;
|
||||
|
||||
if (uiStompTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_STOMP, H_SPELL_STOMP));
|
||||
DoCast(m_creature->getVictim(), SPELL_STOMP);
|
||||
uiStompTimer = 20*IN_MILISECONDS;
|
||||
} else uiStompTimer -= diff;
|
||||
|
||||
@@ -225,7 +225,7 @@ struct boss_gal_darahAI : public ScriptedAI
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
{
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_IMPALING_CHARGE, H_SPELL_IMPALING_CHARGE));
|
||||
DoCast(pTarget, SPELL_IMPALING_CHARGE);
|
||||
lImpaledPlayers.insert(pTarget->GetGUID());
|
||||
}
|
||||
uiImpalingChargeTimer = 31*IN_MILISECONDS;
|
||||
|
||||
@@ -120,7 +120,7 @@ struct boss_moorabiAI : public ScriptedAI
|
||||
if (uiDeterminedStabTimer <= uiDiff)
|
||||
{
|
||||
if (bPhase)
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_DETERMINED_GORE, H_SPELL_DETERMINED_GORE));
|
||||
DoCast(m_creature->getVictim(), SPELL_DETERMINED_GORE);
|
||||
else
|
||||
DoCast(m_creature->getVictim(), SPELL_DETERMINED_STAB, true);
|
||||
uiDeterminedStabTimer = 8*IN_MILISECONDS;
|
||||
|
||||
@@ -114,19 +114,19 @@ struct boss_slad_ranAI : public ScriptedAI
|
||||
|
||||
if (uiPoisonNovaTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_POISON_NOVA, H_SPELL_POISON_NOVA));
|
||||
DoCast(m_creature->getVictim(), SPELL_POISON_NOVA);
|
||||
uiPoisonNovaTimer = 15*IN_MILISECONDS;
|
||||
} else uiPoisonNovaTimer -= diff;
|
||||
|
||||
if (uiPowerfullBiteTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_POWERFULL_BITE, H_SPELL_POWERFULL_BITE));
|
||||
DoCast(m_creature->getVictim(), SPELL_POWERFULL_BITE);
|
||||
uiPowerfullBiteTimer = 10*IN_MILISECONDS;
|
||||
} else uiPowerfullBiteTimer -= diff;
|
||||
|
||||
if (uiVenomBoltTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_VENOM_BOLT, H_SPELL_VENOM_BOLT));
|
||||
DoCast(m_creature->getVictim(), SPELL_VENOM_BOLT);
|
||||
uiVenomBoltTimer = 10*IN_MILISECONDS;
|
||||
} else uiVenomBoltTimer -= diff;
|
||||
|
||||
@@ -224,7 +224,7 @@ struct mob_slad_ran_viperAI : public ScriptedAI
|
||||
|
||||
if (uiVenomousBiteTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_VENOMOUS_BITE, H_SPELL_VENOMOUS_BITE));
|
||||
DoCast(m_creature->getVictim(), SPELL_VENOMOUS_BITE);
|
||||
uiVenomousBiteTimer = 10*IN_MILISECONDS;
|
||||
} else uiVenomousBiteTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@ struct boss_anomalusAI : public ScriptedAI
|
||||
if (uiSparkTimer <= diff)
|
||||
{
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_SPARK, H_SPELL_SPARK));
|
||||
DoCast(pTarget, SPELL_SPARK);
|
||||
uiSparkTimer = 5*IN_MILISECONDS;
|
||||
} else uiSparkTimer -= diff;
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ struct boss_keristraszaAI : public ScriptedAI
|
||||
|
||||
if (uiCrystalfireBreathTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_CRYSTALFIRE_BREATH, H_SPELL_CRYSTALFIRE_BREATH));
|
||||
DoCast(m_creature->getVictim(), SPELL_CRYSTALFIRE_BREATH);
|
||||
uiCrystalfireBreathTimer = 14*IN_MILISECONDS;
|
||||
} else uiCrystalfireBreathTimer -= diff;
|
||||
|
||||
|
||||
@@ -281,7 +281,7 @@ struct boss_magus_telestraAI : public ScriptedAI
|
||||
{
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
{
|
||||
DoCast(pTarget, SPELL_ICE_NOVA, false, true);
|
||||
DoCast(pTarget, SPELL_ICE_NOVA, false);
|
||||
uiCooldown = 1.5*IN_MILISECONDS;
|
||||
}
|
||||
uiIceNovaTimer = 15*IN_MILISECONDS;
|
||||
@@ -301,7 +301,7 @@ struct boss_magus_telestraAI : public ScriptedAI
|
||||
{
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
{
|
||||
DoCast(pTarget, SPELL_FIREBOMB, false, true);
|
||||
DoCast(pTarget, SPELL_FIREBOMB, false);
|
||||
uiCooldown = 2*IN_MILISECONDS;
|
||||
}
|
||||
uiFireBombTimer = 2*IN_MILISECONDS;
|
||||
|
||||
@@ -139,7 +139,7 @@ struct boss_ormorokAI : public ScriptedAI
|
||||
|
||||
if (uiTrampleTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_TRAMPLE, H_SPELL_TRAMPLE));
|
||||
DoCast(m_creature, SPELL_TRAMPLE);
|
||||
uiTrampleTimer = 10*IN_MILISECONDS;
|
||||
} else uiTrampleTimer -= diff;
|
||||
|
||||
@@ -232,7 +232,7 @@ struct mob_crystal_spikeAI : public Scripted_NoMovementAI
|
||||
|
||||
if (SpellCrystalSpikeDamageTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_CRYSTALL_SPIKE_DAMAGE, H_SPELL_CRYSTALL_SPIKE_DAMAGE));
|
||||
DoCast(m_creature, SPELL_CRYSTALL_SPIKE_DAMAGE);
|
||||
SpellCrystalSpikeDamageTimer = 10*IN_MILISECONDS;
|
||||
} else SpellCrystalSpikeDamageTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ struct boss_drakosAI : public ScriptedAI
|
||||
if (uiStompTimer < diff)
|
||||
{
|
||||
DoScriptText(RAND(SAY_STOMP_1,SAY_STOMP_2,SAY_STOMP_3), m_creature);
|
||||
DoCast(DUNGEON_MODE(SPELL_THUNDERING_STOMP, SPELL_THUNDERING_STOMP_H));
|
||||
DoCast(SPELL_THUNDERING_STOMP);
|
||||
uiStompTimer = urand(15*IN_MILISECONDS, 18*IN_MILISECONDS);
|
||||
} else uiStompTimer -= diff ;
|
||||
|
||||
|
||||
@@ -394,7 +394,7 @@ struct mob_stormforged_lieutenantAI : public ScriptedAI
|
||||
if (Creature* pBjarngrim = m_pInstance->instance->GetCreature(m_pInstance->GetData64(DATA_BJARNGRIM)))
|
||||
{
|
||||
if (pBjarngrim->isAlive())
|
||||
DoCast(pBjarngrim, DUNGEON_MODE(SPELL_RENEW_STEEL_N, SPELL_RENEW_STEEL_H));
|
||||
DoCast(pBjarngrim, SPELL_RENEW_STEEL_N);
|
||||
}
|
||||
}
|
||||
m_uiRenewSteel_Timer = 10000 + rand()%4000;
|
||||
|
||||
@@ -231,7 +231,7 @@ struct boss_ionarAI : public ScriptedAI
|
||||
if (uiStaticOverloadTimer <= uiDiff)
|
||||
{
|
||||
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_STATIC_OVERLOAD, H_SPELL_STATIC_OVERLOAD));
|
||||
DoCast(pTarget, SPELL_STATIC_OVERLOAD);
|
||||
|
||||
uiStaticOverloadTimer = urand(5*IN_MILISECONDS, 6*IN_MILISECONDS);
|
||||
}
|
||||
@@ -240,7 +240,7 @@ struct boss_ionarAI : public ScriptedAI
|
||||
|
||||
if (uiBallLightningTimer <= uiDiff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_BALL_LIGHTNING, H_SPELL_BALL_LIGHTNING));
|
||||
DoCast(m_creature->getVictim(), SPELL_BALL_LIGHTNING);
|
||||
uiBallLightningTimer = urand(10*IN_MILISECONDS, 11*IN_MILISECONDS);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -175,7 +175,7 @@ struct boss_lokenAI : public ScriptedAI
|
||||
//breaks at movement, can we assume when it's time, this spell is casted and also must stop movement?
|
||||
DoCast(m_creature, SPELL_PULSING_SHOCKWAVE_AURA, true);
|
||||
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_PULSING_SHOCKWAVE_N, SPELL_PULSING_SHOCKWAVE_H)); // need core support
|
||||
DoCast(m_creature, SPELL_PULSING_SHOCKWAVE_N); // need core support
|
||||
m_bIsAura = true;
|
||||
m_uiResumePulsingShockwave_Timer = 0;
|
||||
}
|
||||
@@ -197,7 +197,7 @@ struct boss_lokenAI : public ScriptedAI
|
||||
{
|
||||
DoScriptText(RAND(SAY_NOVA_1,SAY_NOVA_2,SAY_NOVA_3), m_creature);
|
||||
DoScriptText(EMOTE_NOVA, m_creature);
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_LIGHTNING_NOVA_N, SPELL_LIGHTNING_NOVA_H));
|
||||
DoCast(m_creature, SPELL_LIGHTNING_NOVA_N);
|
||||
|
||||
m_bIsAura = false;
|
||||
m_uiResumePulsingShockwave_Timer = DUNGEON_MODE(5000, 4000); // Pause Pulsing Shockwave aura
|
||||
|
||||
@@ -255,7 +255,7 @@ struct boss_volkhanAI : public ScriptedAI
|
||||
|
||||
DoScriptText(RAND(SAY_STOMP_1,SAY_STOMP_2), m_creature);
|
||||
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_SHATTERING_STOMP_N, SPELL_SHATTERING_STOMP_H));
|
||||
DoCast(m_creature, SPELL_SHATTERING_STOMP_N);
|
||||
|
||||
DoScriptText(EMOTE_SHATTER, m_creature);
|
||||
|
||||
@@ -441,7 +441,7 @@ struct mob_molten_golemAI : public ScriptedAI
|
||||
|
||||
if (m_uiImmolation_Timer <= uiDiff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_IMMOLATION_STRIKE_N, SPELL_IMMOLATION_STRIKE_H));
|
||||
DoCast(m_creature->getVictim(), SPELL_IMMOLATION_STRIKE_N);
|
||||
m_uiImmolation_Timer = 5000;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -79,7 +79,7 @@ struct boss_krystallusAI : public ScriptedAI
|
||||
if (uiBoulderTossTimer <= diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_BOULDER_TOSS, H_SPELL_BOULDER_TOSS));
|
||||
DoCast(pTarget, SPELL_BOULDER_TOSS);
|
||||
uiBoulderTossTimer = 9000 + rand()%6000;
|
||||
} else uiBoulderTossTimer -= diff;
|
||||
|
||||
@@ -92,7 +92,7 @@ struct boss_krystallusAI : public ScriptedAI
|
||||
|
||||
if (uiStompTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_STOMP, H_SPELL_STOMP));
|
||||
DoCast(m_creature, SPELL_STOMP);
|
||||
uiStompTimer = 20000 + rand()%9000;
|
||||
} else uiStompTimer -= diff;
|
||||
|
||||
@@ -108,7 +108,7 @@ struct boss_krystallusAI : public ScriptedAI
|
||||
{
|
||||
if (uiShatterTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_SHATTER, H_SPELL_SHATTER));
|
||||
DoCast(m_creature, SPELL_SHATTER);
|
||||
bIsSlam = false;
|
||||
} else uiShatterTimer -= diff;
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ struct boss_maiden_of_griefAI : public ScriptedAI
|
||||
|
||||
if (StormOfGriefTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_STORM_OF_GRIEF_N, SPELL_STORM_OF_GRIEF_H), true);
|
||||
DoCast(m_creature->getVictim(), SPELL_STORM_OF_GRIEF_N, true);
|
||||
StormOfGriefTimer = 15000 + rand()%5000;
|
||||
} else StormOfGriefTimer -= diff;
|
||||
|
||||
@@ -117,7 +117,7 @@ struct boss_maiden_of_griefAI : public ScriptedAI
|
||||
{
|
||||
DoResetThreat();
|
||||
DoScriptText(SAY_STUN, m_creature);
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_SHOCK_OF_SORROW_N, SPELL_SHOCK_OF_SORROW_H));
|
||||
DoCast(m_creature, SPELL_SHOCK_OF_SORROW_N);
|
||||
ShockOfSorrowTimer = 20000 + rand()%10000;
|
||||
} else ShockOfSorrowTimer -= diff;
|
||||
|
||||
@@ -126,9 +126,9 @@ struct boss_maiden_of_griefAI : public ScriptedAI
|
||||
Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 1);
|
||||
|
||||
if (pTarget)
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_PILLAR_OF_WOE_N, SPELL_PILLAR_OF_WOE_H));
|
||||
DoCast(pTarget, SPELL_PILLAR_OF_WOE_N);
|
||||
else
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_PILLAR_OF_WOE_N, SPELL_PILLAR_OF_WOE_H));
|
||||
DoCast(m_creature->getVictim(), SPELL_PILLAR_OF_WOE_N);
|
||||
|
||||
PillarOfWoeTimer = 5000 + rand()%20000;
|
||||
} else PillarOfWoeTimer -= diff;
|
||||
|
||||
@@ -134,19 +134,19 @@ struct boss_sjonnirAI : public ScriptedAI
|
||||
if (uiChainLightningTimer <= diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_CHAIN_LIGHTING, H_SPELL_CHAIN_LIGHTING));
|
||||
DoCast(pTarget, SPELL_CHAIN_LIGHTING);
|
||||
uiChainLightningTimer = 10000 + rand()%5000;
|
||||
} else uiChainLightningTimer -= diff;
|
||||
|
||||
if (uiLightningShieldTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_LIGHTING_SHIELD, H_SPELL_LIGHTING_SHIELD));
|
||||
DoCast(m_creature, SPELL_LIGHTING_SHIELD);
|
||||
uiLightningShieldTimer -= diff;
|
||||
}
|
||||
|
||||
if (uiStaticChargeTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_STATIC_CHARGE, H_SPELL_STATIC_CHARGE));
|
||||
DoCast(m_creature->getVictim(), SPELL_STATIC_CHARGE);
|
||||
uiStaticChargeTimer = 20000 + rand()%5000;
|
||||
} uiStaticChargeTimer -= diff;
|
||||
|
||||
@@ -154,7 +154,7 @@ struct boss_sjonnirAI : public ScriptedAI
|
||||
{
|
||||
if (m_creature->IsNonMeleeSpellCasted(false))
|
||||
m_creature->InterruptNonMeleeSpells(false);
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_LIGHTING_RING, H_SPELL_LIGHTING_RING));
|
||||
DoCast(m_creature, SPELL_LIGHTING_RING);
|
||||
uiLightningRingTimer = 30000 + rand()%5000;
|
||||
} else uiLightningRingTimer -= diff;
|
||||
|
||||
|
||||
@@ -198,7 +198,7 @@ struct boss_ingvar_the_plundererAI : public ScriptedAI
|
||||
if (!m_creature->hasUnitState(UNIT_STAT_CASTING))
|
||||
{
|
||||
if (bIsUndead)
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_WOE_STRIKE, H_SPELL_WOE_STRIKE));
|
||||
DoCast(m_creature->getVictim(), SPELL_WOE_STRIKE);
|
||||
else
|
||||
DoCast(m_creature->getVictim(), SPELL_CLEAVE);
|
||||
uiCleaveTimer = rand()%5000 + 2000;
|
||||
@@ -212,7 +212,7 @@ struct boss_ingvar_the_plundererAI : public ScriptedAI
|
||||
if (bIsUndead)
|
||||
DoCast(m_creature->getVictim(), SPELL_DARK_SMASH);
|
||||
else
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SMASH, H_SPELL_SMASH));
|
||||
DoCast(m_creature->getVictim(), SPELL_SMASH);
|
||||
uiSmashTimer = 10000;
|
||||
}
|
||||
} else uiSmashTimer -= diff;
|
||||
@@ -221,7 +221,7 @@ struct boss_ingvar_the_plundererAI : public ScriptedAI
|
||||
{
|
||||
if (uiEnrageTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_ENRAGE, H_SPELL_ENRAGE));
|
||||
DoCast(m_creature, SPELL_ENRAGE);
|
||||
uiEnrageTimer = 10000;
|
||||
} else uiEnrageTimer -= diff;
|
||||
} else // In Undead form used to summon weapon
|
||||
@@ -248,9 +248,9 @@ struct boss_ingvar_the_plundererAI : public ScriptedAI
|
||||
if (!m_creature->hasUnitState(UNIT_STAT_CASTING))
|
||||
{
|
||||
if (bIsUndead)
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_DREADFUL_ROAR, H_SPELL_DREADFUL_ROAR));
|
||||
DoCast(m_creature, SPELL_DREADFUL_ROAR);
|
||||
else
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_STAGGERING_ROAR, H_SPELL_STAGGERING_ROAR));
|
||||
DoCast(m_creature, SPELL_STAGGERING_ROAR);
|
||||
uiRoarTimer = 10000;
|
||||
}
|
||||
} else uiRoarTimer -= diff;
|
||||
@@ -395,7 +395,7 @@ struct mob_ingvar_throw_dummyAI : public ScriptedAI
|
||||
Unit *pTarget = m_creature->FindNearestCreature(ENTRY_THROW_TARGET,50);
|
||||
if (pTarget)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_SHADOW_AXE_DAMAGE, H_SPELL_SHADOW_AXE_DAMAGE));
|
||||
DoCast(m_creature, SPELL_SHADOW_AXE_DAMAGE);
|
||||
float x,y,z;
|
||||
pTarget->GetPosition(x,y,z);
|
||||
m_creature->GetMotionMaster()->MovePoint(0,x,y,z);
|
||||
|
||||
@@ -340,7 +340,7 @@ struct boss_dalronn_the_controllerAI : public ScriptedAI
|
||||
{
|
||||
if (!m_creature->IsNonMeleeSpellCasted(false))
|
||||
{
|
||||
DoCast(SelectUnit(SELECT_TARGET_RANDOM, 0), DUNGEON_MODE(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT));
|
||||
DoCast(SelectUnit(SELECT_TARGET_RANDOM, 0), SPELL_SHADOW_BOLT);
|
||||
ShadowBolt_Timer = 2100;//give a 100ms pause to try cast other spells
|
||||
}
|
||||
} else ShadowBolt_Timer -= diff;
|
||||
|
||||
@@ -164,13 +164,13 @@ struct boss_palehoofAI : public ScriptedAI
|
||||
if (uiImpaleTimer <= diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_IMPALE, H_SPELL_IMPALE));
|
||||
DoCast(pTarget, SPELL_IMPALE);
|
||||
uiImpaleTimer = urand(8000,12000);
|
||||
} else uiImpaleTimer -= diff;
|
||||
|
||||
if (uiWhiteringRoarTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_WITHERING_ROAR, H_SPELL_WITHERING_ROAR));
|
||||
DoCast(m_creature, SPELL_WITHERING_ROAR);
|
||||
uiWhiteringRoarTimer = urand(8000,12000);
|
||||
} else uiWhiteringRoarTimer -= diff;
|
||||
|
||||
@@ -290,7 +290,7 @@ struct mob_ravenous_furbolgAI : public ScriptedAI
|
||||
|
||||
if (uiChainLightingTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_CHAIN_LIGHTING, H_SPELL_CHAIN_LIGHTING));
|
||||
DoCast(m_creature->getVictim(), SPELL_CHAIN_LIGHTING);
|
||||
uiChainLightingTimer = 5000 + rand()%5000;
|
||||
} else uiChainLightingTimer -= diff;
|
||||
|
||||
@@ -396,7 +396,7 @@ struct mob_frenzied_worgenAI : public ScriptedAI
|
||||
|
||||
if (uiMortalWoundTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MORTAL_WOUND, H_SPELL_MORTAL_WOUND));
|
||||
DoCast(m_creature->getVictim(), SPELL_MORTAL_WOUND);
|
||||
uiMortalWoundTimer = 3000 + rand()%4000;
|
||||
} else uiMortalWoundTimer -= diff;
|
||||
|
||||
@@ -511,14 +511,14 @@ struct mob_ferocious_rhinoAI : public ScriptedAI
|
||||
|
||||
if (uiGoreTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_GORE, H_SPELL_GORE));
|
||||
DoCast(m_creature->getVictim(), SPELL_GORE);
|
||||
uiGoreTimer = 13000 + rand()%4000;
|
||||
} else uiGoreTimer -= diff;
|
||||
|
||||
if (uiGrievousWoundTimer <= diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_GRIEVOUS_WOUND, H_SPELL_GRIEVOUS_WOUND));
|
||||
DoCast(pTarget, SPELL_GRIEVOUS_WOUND);
|
||||
uiGrievousWoundTimer = 18000 + rand()%4000;
|
||||
} else uiGrievousWoundTimer -= diff;
|
||||
|
||||
@@ -625,14 +625,14 @@ struct mob_massive_jormungarAI : public ScriptedAI
|
||||
|
||||
if (uiAcidSplatterTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_POISON_BREATH, H_SPELL_POISON_BREATH));
|
||||
DoCast(m_creature, SPELL_POISON_BREATH);
|
||||
uiAcidSplatterTimer = 10000 + rand()%4000;
|
||||
} else uiAcidSplatterTimer -= diff;
|
||||
|
||||
if (uiPoisonBreathTimer <= diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_POISON_BREATH, H_SPELL_POISON_BREATH));
|
||||
DoCast(pTarget, SPELL_POISON_BREATH);
|
||||
uiPoisonBreathTimer = 8000 + rand()%4000;
|
||||
} else uiPoisonBreathTimer -= diff;
|
||||
|
||||
|
||||
@@ -149,14 +149,14 @@ struct boss_skadiAI : public ScriptedAI
|
||||
|
||||
if (uiCrushTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_CRUSH, H_SPELL_CRUSH));
|
||||
DoCast(m_creature->getVictim(), SPELL_CRUSH);
|
||||
uiCrushTimer = 8000;
|
||||
} else uiCrushTimer -= diff;
|
||||
|
||||
if (uiPoisonedSpearTimer <= diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_POISONED_SPEAR, H_SPELL_POISONED_SPEAR));
|
||||
DoCast(pTarget, SPELL_POISONED_SPEAR);
|
||||
uiPoisonedSpearTimer = 10000;
|
||||
} else uiPoisonedSpearTimer -= diff;
|
||||
|
||||
|
||||
@@ -292,7 +292,7 @@ struct boss_svala_sorrowgraveAI : public ScriptedAI
|
||||
|
||||
if (uiSinsterStrikeTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SINSTER_STRIKE, H_SPELL_SINSTER_STRIKE));
|
||||
DoCast(m_creature->getVictim(), SPELL_SINSTER_STRIKE);
|
||||
uiSinsterStrikeTimer = urand(5*IN_MILISECONDS,9*IN_MILISECONDS);
|
||||
} else uiSinsterStrikeTimer -= diff;
|
||||
|
||||
|
||||
@@ -218,13 +218,13 @@ struct boss_ymironAI : public ScriptedAI
|
||||
// Normal spells ------------------------------------------------------------------------
|
||||
if (m_uiBane_Timer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_BANE, H_SPELL_BANE));
|
||||
DoCast(m_creature, SPELL_BANE);
|
||||
m_uiBane_Timer = urand(20000,25000);
|
||||
} else m_uiBane_Timer -= diff;
|
||||
|
||||
if (m_uiFetidRot_Timer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_FETID_ROT, H_SPELL_FETID_ROT));
|
||||
DoCast(m_creature->getVictim(), SPELL_FETID_ROT);
|
||||
m_uiFetidRot_Timer = urand(10000,15000);
|
||||
} else m_uiFetidRot_Timer -= diff;
|
||||
|
||||
@@ -259,13 +259,13 @@ struct boss_ymironAI : public ScriptedAI
|
||||
|
||||
if (m_bIsActiveWithHALDOR && m_uiAbility_HALDOR_Timer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SPIRIT_STRIKE, H_SPELL_SPIRIT_STRIKE));
|
||||
DoCast(m_creature->getVictim(), SPELL_SPIRIT_STRIKE);
|
||||
m_uiAbility_HALDOR_Timer = 5000; // overtime
|
||||
} else m_uiAbility_HALDOR_Timer -= diff;
|
||||
|
||||
if (m_bIsActiveWithRANULF && m_uiAbility_RANULF_Timer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_SPIRIT_BURST, H_SPELL_SPIRIT_BURST));
|
||||
DoCast(m_creature, SPELL_SPIRIT_BURST);
|
||||
m_uiAbility_RANULF_Timer = 10000; // overtime
|
||||
} else m_uiAbility_RANULF_Timer -= diff;
|
||||
|
||||
|
||||
@@ -97,19 +97,19 @@ struct boss_cyanigosaAI : public ScriptedAI
|
||||
if (uiBlizzardTimer <= diff)
|
||||
{
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_BLIZZARD, H_SPELL_BLIZZARD));
|
||||
DoCast(pTarget, SPELL_BLIZZARD);
|
||||
uiBlizzardTimer = 15000;
|
||||
} else uiBlizzardTimer -= diff;
|
||||
|
||||
if (uiTailSweepTimer <= diff)
|
||||
{
|
||||
DoCast(DUNGEON_MODE(SPELL_TAIL_SWEEP, H_SPELL_TAIL_SWEEP));
|
||||
DoCast(SPELL_TAIL_SWEEP);
|
||||
uiTailSweepTimer = 20000;
|
||||
} else uiTailSweepTimer -= diff;
|
||||
|
||||
if (uiUncontrollableEnergyTimer <= diff)
|
||||
{
|
||||
DoCastVictim(DUNGEON_MODE(SPELL_UNCONTROLLABLE_ENERGY,H_SPELL_UNCONTROLLABLE_ENERGY));
|
||||
DoCastVictim(SPELL_UNCONTROLLABLE_ENERGY);
|
||||
uiUncontrollableEnergyTimer = 25000;
|
||||
} else uiUncontrollableEnergyTimer -= diff;
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ struct boss_erekemAI : public ScriptedAI
|
||||
void EnterCombat(Unit* pWho)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, m_creature);
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_EARTH_SHIELD, H_SPELL_EARTH_SHIELD));
|
||||
DoCast(m_creature, SPELL_EARTH_SHIELD);
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
@@ -150,7 +150,7 @@ struct boss_erekemAI : public ScriptedAI
|
||||
|
||||
if (uiEarthShieldTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_EARTH_SHIELD, H_SPELL_EARTH_SHIELD));
|
||||
DoCast(m_creature, SPELL_EARTH_SHIELD);
|
||||
uiEarthShieldTimer = 20000;
|
||||
} else uiEarthShieldTimer -= diff;
|
||||
|
||||
@@ -159,7 +159,7 @@ struct boss_erekemAI : public ScriptedAI
|
||||
if (uint64 TargetGUID = GetChainHealTargetGUID())
|
||||
{
|
||||
if (Creature *pTarget = Unit::GetCreature(*m_creature, TargetGUID))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_CHAIN_HEAL, H_SPELL_CHAIN_HEAL));
|
||||
DoCast(pTarget, SPELL_CHAIN_HEAL);
|
||||
|
||||
//If one of the adds is dead spawn heals faster
|
||||
Creature *pGuard1 = Unit::GetCreature(*m_creature, pInstance ? pInstance->GetData64(DATA_EREKEM_GUARD_1) : 0);
|
||||
|
||||
@@ -206,7 +206,7 @@ struct boss_ichoronAI : public ScriptedAI
|
||||
if (!bIsFrenzy && HealthBelowPct(25) && !bIsExploded)
|
||||
{
|
||||
DoScriptText(SAY_ENRAGE, m_creature);
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_FRENZY, SPELL_FRENZY_H), true);
|
||||
DoCast(m_creature, SPELL_FRENZY, true);
|
||||
bIsFrenzy = true;
|
||||
}
|
||||
|
||||
@@ -219,7 +219,7 @@ struct boss_ichoronAI : public ScriptedAI
|
||||
if (!m_creature->HasAura(SPELL_PROTECTIVE_BUBBLE, 0))
|
||||
{
|
||||
DoScriptText(SAY_SHATTER, m_creature);
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_WATER_BLAST, SPELL_WATER_BLAST_H));
|
||||
DoCast(m_creature, SPELL_WATER_BLAST);
|
||||
DoCast(m_creature, SPELL_DRAINED);
|
||||
bIsExploded = true;
|
||||
m_creature->AttackStop();
|
||||
@@ -257,7 +257,7 @@ struct boss_ichoronAI : public ScriptedAI
|
||||
{
|
||||
if (uiWaterBoltVolleyTimer <= uiDiff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_WATER_BOLT_VOLLEY, SPELL_WATER_BOLT_VOLLEY_H));
|
||||
DoCast(m_creature, SPELL_WATER_BOLT_VOLLEY);
|
||||
uiWaterBoltVolleyTimer = urand(10000, 15000);
|
||||
}
|
||||
else uiWaterBoltVolleyTimer -= uiDiff;
|
||||
|
||||
@@ -93,19 +93,19 @@ struct boss_lavanthorAI : public ScriptedAI
|
||||
|
||||
if (uiFireboltTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_FIREBOLT, H_SPELL_FIREBOLT));
|
||||
DoCast(m_creature->getVictim(), SPELL_FIREBOLT);
|
||||
uiFireboltTimer = urand(5000,13000);
|
||||
} else uiFireboltTimer -= diff;
|
||||
|
||||
if (uiFlameBreathTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_FLAME_BREATH, H_SPELL_FLAME_BREATH));
|
||||
DoCast(m_creature->getVictim(), SPELL_FLAME_BREATH);
|
||||
uiFlameBreathTimer = urand(10000,15000);
|
||||
} else uiFlameBreathTimer -= diff;
|
||||
|
||||
if (uiLavaBurnTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_LAVA_BURN, H_SPELL_LAVA_BURN));
|
||||
DoCast(m_creature->getVictim(), SPELL_LAVA_BURN);
|
||||
uiLavaBurnTimer = urand(15000,23000);
|
||||
}
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@ struct boss_xevozzAI : public ScriptedAI
|
||||
|
||||
if (uiArcaneBarrageVolley_Timer < uiDiff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_ARCANE_BARRAGE_VOLLEY, SPELL_ARCANE_BARRAGE_VOLLEY_H));
|
||||
DoCast(m_creature, SPELL_ARCANE_BARRAGE_VOLLEY);
|
||||
uiArcaneBarrageVolley_Timer = urand(20000, 22000);
|
||||
}
|
||||
else uiArcaneBarrageVolley_Timer -= uiDiff;
|
||||
@@ -167,7 +167,7 @@ struct boss_xevozzAI : public ScriptedAI
|
||||
if (uiArcaneBuffet_Timer)
|
||||
if (uiArcaneBuffet_Timer < uiDiff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_ARCANE_BUFFET, SPELL_ARCANE_BUFFET_H));
|
||||
DoCast(m_creature->getVictim(), SPELL_ARCANE_BUFFET);
|
||||
uiArcaneBuffet_Timer = 0;
|
||||
}
|
||||
else uiArcaneBuffet_Timer -= uiDiff;
|
||||
@@ -256,7 +256,7 @@ struct mob_ethereal_sphereAI : public ScriptedAI
|
||||
{
|
||||
float fDistance = m_creature->GetDistance2d(pXevozz);
|
||||
if (fDistance <= 3)
|
||||
DoCast(pXevozz, DUNGEON_MODE(SPELL_ARCANE_POWER, H_SPELL_ARCANE_POWER));
|
||||
DoCast(pXevozz, SPELL_ARCANE_POWER);
|
||||
else
|
||||
DoCast(m_creature, 35845); //Is it blizzlike?
|
||||
}
|
||||
|
||||
@@ -114,13 +114,13 @@ struct boss_zuramatAI : public ScriptedAI
|
||||
if (SpellVoidShiftTimer <= diff)
|
||||
{
|
||||
if (Unit* pUnit = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
DoCast(pUnit, DUNGEON_MODE(SPELL_VOID_SHIFT, H_SPELL_VOID_SHIFT));
|
||||
DoCast(pUnit, SPELL_VOID_SHIFT);
|
||||
SpellVoidShiftTimer = 20000;
|
||||
} else SpellVoidShiftTimer -=diff;
|
||||
|
||||
if (SpellShroudOfDarknessTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SHROUD_OF_DARKNESS, H_SPELL_SHROUD_OF_DARKNESS));
|
||||
DoCast(m_creature->getVictim(), SPELL_SHROUD_OF_DARKNESS);
|
||||
SpellShroudOfDarknessTimer = 20000;
|
||||
} else SpellShroudOfDarknessTimer -=diff;
|
||||
|
||||
@@ -157,7 +157,7 @@ struct boss_zuramatAI : public ScriptedAI
|
||||
void JustSummoned(Creature* summon)
|
||||
{
|
||||
summon->AI()->AttackStart(m_creature->getVictim());
|
||||
summon->AI()->DoCastAOE(DUNGEON_MODE(SPELL_ZURAMAT_ADD_2, H_SPELL_ZURAMAT_ADD_2));
|
||||
summon->AI()->DoCastAOE(SPELL_ZURAMAT_ADD_2);
|
||||
summon->SetPhaseMask(17,true);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user