aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsilinoron <none@none>2010-08-06 18:48:08 -0700
committersilinoron <none@none>2010-08-06 18:48:08 -0700
commitc69bb618f5fda37ba898fd49e5b6a39d9c04fe4b (patch)
tree3fe8f05ccda4b06a9a4897e1f3caa0896720fc55
parent66ff6cda25a5cdf3ec839ab0fb1c9e2e047ac2e8 (diff)
Convert Alterac Valley to new format.
--HG-- branch : trunk
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp246
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp150
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp148
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp136
4 files changed, 344 insertions, 336 deletions
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
index 605041d3c9d..b18e82bc8af 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
@@ -41,164 +41,168 @@ enum WaterElementalSpells
SPELL_WATERBOLT = 46983
};
-struct mob_water_elementalAI : public ScriptedAI
+class mob_water_elemental : public CreatureScript
{
- mob_water_elementalAI(Creature *c) : ScriptedAI(c) {}
+public:
+ mob_water_elemental() : CreatureScript("mob_water_elemental") { }
- uint32 uiWaterBoltTimer;
- uint64 uiBalindaGUID;
- uint32 uiResetTimer;
-
- void Reset()
+ struct mob_water_elementalAI : public ScriptedAI
{
- uiWaterBoltTimer = 3*IN_MILLISECONDS;
- uiResetTimer = 5*IN_MILLISECONDS;
- }
+ mob_water_elementalAI(Creature *c) : ScriptedAI(c) {}
- void UpdateAI(const uint32 diff)
- {
- if (!UpdateVictim())
- return;
+ uint32 uiWaterBoltTimer;
+ uint64 uiBalindaGUID;
+ uint32 uiResetTimer;
- if (uiWaterBoltTimer < diff)
+ void Reset()
{
- DoCast(me->getVictim(), SPELL_WATERBOLT);
- uiWaterBoltTimer = 5*IN_MILLISECONDS;
- } else uiWaterBoltTimer -= diff;
+ uiWaterBoltTimer = 3*IN_MILLISECONDS;
+ uiResetTimer = 5*IN_MILLISECONDS;
+ }
- // check if creature is not outside of building
- if (uiResetTimer < diff)
+ void UpdateAI(const uint32 diff)
{
- if (Creature *pBalinda = Unit::GetCreature(*me, uiBalindaGUID))
- if (me->GetDistance2d(pBalinda->GetHomePosition().GetPositionX(), pBalinda->GetHomePosition().GetPositionY()) > 50)
- EnterEvadeMode();
- uiResetTimer = 5*IN_MILLISECONDS;
- } else uiResetTimer -= diff;
+ if (!UpdateVictim())
+ return;
- DoMeleeAttackIfReady();
- }
-};
-
-struct boss_balindaAI : public ScriptedAI
-{
- boss_balindaAI(Creature *c) : ScriptedAI(c), Summons(me) {}
+ if (uiWaterBoltTimer < diff)
+ {
+ DoCast(me->getVictim(), SPELL_WATERBOLT);
+ uiWaterBoltTimer = 5*IN_MILLISECONDS;
+ } else uiWaterBoltTimer -= diff;
- uint32 uiArcaneExplosionTimer;
- uint32 uiConeOfColdTimer;
- uint32 uiFireBoltTimer;
- uint32 uiFrostboltTimer;
- uint32 uiResetTimer;
- uint32 uiWaterElementalTimer;
+ // check if creature is not outside of building
+ if (uiResetTimer < diff)
+ {
+ if (Creature *pBalinda = Unit::GetCreature(*me, uiBalindaGUID))
+ if (me->GetDistance2d(pBalinda->GetHomePosition().GetPositionX(), pBalinda->GetHomePosition().GetPositionY()) > 50)
+ EnterEvadeMode();
+ uiResetTimer = 5*IN_MILLISECONDS;
+ } else uiResetTimer -= diff;
- SummonList Summons;
+ DoMeleeAttackIfReady();
+ }
+ };
- void Reset()
+ CreatureAI *OnGetAI(Creature *creature) const
{
- uiArcaneExplosionTimer = urand(5*IN_MILLISECONDS,15*IN_MILLISECONDS);
- uiConeOfColdTimer = 8*IN_MILLISECONDS;
- uiFireBoltTimer = 1*IN_MILLISECONDS;
- uiFrostboltTimer = 4*IN_MILLISECONDS;
- uiResetTimer = 5*IN_MILLISECONDS;
- uiWaterElementalTimer = 0;
-
- Summons.DespawnAll();
+ return new mob_water_elementalAI(creature);
}
+};
- void EnterCombat(Unit * /*who*/)
- {
- DoScriptText(YELL_AGGRO, me);
- }
+class boss_balinda : public CreatureScript
+{
+public:
+ boss_balinda() : CreatureScript("boss_balinda") { }
- void JustRespawned()
+ struct boss_balindaAI : public ScriptedAI
{
- Reset();
- }
+ boss_balindaAI(Creature *c) : ScriptedAI(c), Summons(me) {}
- void JustSummoned(Creature* summoned)
- {
- CAST_AI(mob_water_elementalAI, summoned->AI())->uiBalindaGUID = me->GetGUID();
- summoned->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM,0, 50, true));
- summoned->setFaction(me->getFaction());
- Summons.Summon(summoned);
- }
+ uint32 uiArcaneExplosionTimer;
+ uint32 uiConeOfColdTimer;
+ uint32 uiFireBoltTimer;
+ uint32 uiFrostboltTimer;
+ uint32 uiResetTimer;
+ uint32 uiWaterElementalTimer;
- void JustDied(Unit* /*Killer*/)
- {
- Summons.DespawnAll();
- }
+ SummonList Summons;
- void UpdateAI(const uint32 diff)
- {
- if (!UpdateVictim())
- return;
+ void Reset()
+ {
+ uiArcaneExplosionTimer = urand(5*IN_MILLISECONDS,15*IN_MILLISECONDS);
+ uiConeOfColdTimer = 8*IN_MILLISECONDS;
+ uiFireBoltTimer = 1*IN_MILLISECONDS;
+ uiFrostboltTimer = 4*IN_MILLISECONDS;
+ uiResetTimer = 5*IN_MILLISECONDS;
+ uiWaterElementalTimer = 0;
+
+ Summons.DespawnAll();
+ }
- if (uiWaterElementalTimer < diff)
+ void EnterCombat(Unit * /*who*/)
{
- if (Summons.empty())
- me->SummonCreature(NPC_WATER_ELEMENTAL, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45*IN_MILLISECONDS);
- uiWaterElementalTimer = 50*IN_MILLISECONDS;
- } else uiWaterElementalTimer -= diff;
+ DoScriptText(YELL_AGGRO, me);
+ }
- if (uiArcaneExplosionTimer < diff)
+ void JustRespawned()
{
- DoCast(me->getVictim(), SPELL_ARCANE_EXPLOSION);
- uiArcaneExplosionTimer = urand(5*IN_MILLISECONDS,15*IN_MILLISECONDS);
- } else uiArcaneExplosionTimer -= diff;
+ Reset();
+ }
- if (uiConeOfColdTimer < diff)
+ void JustSummoned(Creature* summoned)
{
- DoCast(me->getVictim(), SPELL_CONE_OF_COLD);
- uiConeOfColdTimer = urand(10*IN_MILLISECONDS,20*IN_MILLISECONDS);
- } else uiConeOfColdTimer -= diff;
+ CAST_AI(mob_water_elementalAI, summoned->AI())->uiBalindaGUID = me->GetGUID();
+ summoned->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM,0, 50, true));
+ summoned->setFaction(me->getFaction());
+ Summons.Summon(summoned);
+ }
- if (uiFireBoltTimer < diff)
+ void JustDied(Unit* /*Killer*/)
{
- DoCast(me->getVictim(), SPELL_FIREBALL);
- uiFireBoltTimer = urand(5*IN_MILLISECONDS,9*IN_MILLISECONDS);
- } else uiFireBoltTimer -= diff;
+ Summons.DespawnAll();
+ }
- if (uiFrostboltTimer < diff)
+ void UpdateAI(const uint32 diff)
{
- DoCast(me->getVictim(), SPELL_FROSTBOLT);
- uiFrostboltTimer = urand(4*IN_MILLISECONDS,12*IN_MILLISECONDS);
- } else uiFrostboltTimer -= diff;
+ if (!UpdateVictim())
+ return;
+ if (uiWaterElementalTimer < diff)
+ {
+ if (Summons.empty())
+ me->SummonCreature(NPC_WATER_ELEMENTAL, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45*IN_MILLISECONDS);
+ uiWaterElementalTimer = 50*IN_MILLISECONDS;
+ } else uiWaterElementalTimer -= diff;
- // check if creature is not outside of building
- if (uiResetTimer < diff)
- {
- if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
+ if (uiArcaneExplosionTimer < diff)
{
- EnterEvadeMode();
- DoScriptText(YELL_EVADE, me);
- }
- uiResetTimer = 5*IN_MILLISECONDS;
- } else uiResetTimer -= diff;
+ DoCast(me->getVictim(), SPELL_ARCANE_EXPLOSION);
+ uiArcaneExplosionTimer = urand(5*IN_MILLISECONDS,15*IN_MILLISECONDS);
+ } else uiArcaneExplosionTimer -= diff;
- DoMeleeAttackIfReady();
- }
-};
+ if (uiConeOfColdTimer < diff)
+ {
+ DoCast(me->getVictim(), SPELL_CONE_OF_COLD);
+ uiConeOfColdTimer = urand(10*IN_MILLISECONDS,20*IN_MILLISECONDS);
+ } else uiConeOfColdTimer -= diff;
-CreatureAI* GetAI_boss_balinda(Creature *_Creature)
-{
- return new boss_balindaAI (_Creature);
-}
+ if (uiFireBoltTimer < diff)
+ {
+ DoCast(me->getVictim(), SPELL_FIREBALL);
+ uiFireBoltTimer = urand(5*IN_MILLISECONDS,9*IN_MILLISECONDS);
+ } else uiFireBoltTimer -= diff;
-CreatureAI* GetAI_mob_water_elemental(Creature *_Creature)
-{
- return new mob_water_elementalAI (_Creature);
-}
+ if (uiFrostboltTimer < diff)
+ {
+ DoCast(me->getVictim(), SPELL_FROSTBOLT);
+ uiFrostboltTimer = urand(4*IN_MILLISECONDS,12*IN_MILLISECONDS);
+ } else uiFrostboltTimer -= diff;
+
+
+ // check if creature is not outside of building
+ if (uiResetTimer < diff)
+ {
+ if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
+ {
+ EnterEvadeMode();
+ DoScriptText(YELL_EVADE, me);
+ }
+ uiResetTimer = 5*IN_MILLISECONDS;
+ } else uiResetTimer -= diff;
+
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI *OnGetAI(Creature *creature) const
+ {
+ return new boss_balindaAI(creature);
+ }
+};
void AddSC_boss_balinda()
{
- Script *newscript;
- newscript = new Script;
- newscript->Name = "boss_balinda";
- newscript->GetAI = &GetAI_boss_balinda;
- newscript->RegisterSelf();
-
- newscript = new Script;
- newscript->Name = "mob_water_elemental";
- newscript->GetAI = &GetAI_mob_water_elemental;
- newscript->RegisterSelf();
+ new boss_balinda;
+ new mob_water_elemental;
}; \ No newline at end of file
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp
index 385812c6776..fed10c619c7 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp
@@ -41,99 +41,101 @@ enum Yells
YELL_RANDOM5 = -1810007
};
-struct boss_drektharAI : public ScriptedAI
+class boss_drekthar : public CreatureScript
{
- boss_drektharAI(Creature *c) : ScriptedAI(c) {}
+public:
+ boss_drekthar() : CreatureScript("boss_drekthar") { }
- uint32 uiWhirlwindTimer;
- uint32 uiWhirlwind2Timer;
- uint32 uiKnockdownTimer;
- uint32 uiFrenzyTimer;
- uint32 uiYellTimer;
- uint32 uiResetTimer;
-
- void Reset()
- {
- uiWhirlwindTimer = urand(1*IN_MILLISECONDS,20*IN_MILLISECONDS);
- uiWhirlwind2Timer = urand(1*IN_MILLISECONDS,20*IN_MILLISECONDS);
- uiKnockdownTimer = 12*IN_MILLISECONDS;
- uiFrenzyTimer = 6*IN_MILLISECONDS;
- uiResetTimer = 5*IN_MILLISECONDS;
- uiYellTimer = urand(20*IN_MILLISECONDS,30*IN_MILLISECONDS); //20 to 30 seconds
- }
-
- void EnterCombat(Unit * /*who*/)
+ struct boss_drektharAI : public ScriptedAI
{
- DoScriptText(YELL_AGGRO, me);
- }
+ boss_drektharAI(Creature *c) : ScriptedAI(c) {}
- void JustRespawned()
- {
- Reset();
- DoScriptText(YELL_RESPAWN, me);
- }
+ uint32 uiWhirlwindTimer;
+ uint32 uiWhirlwind2Timer;
+ uint32 uiKnockdownTimer;
+ uint32 uiFrenzyTimer;
+ uint32 uiYellTimer;
+ uint32 uiResetTimer;
- void UpdateAI(const uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- if (uiWhirlwindTimer <= diff)
+ void Reset()
{
- DoCast(me->getVictim(), SPELL_WHIRLWIND);
- uiWhirlwindTimer = urand(8*IN_MILLISECONDS,18*IN_MILLISECONDS);
- } else uiWhirlwindTimer -= diff;
+ uiWhirlwindTimer = urand(1*IN_MILLISECONDS,20*IN_MILLISECONDS);
+ uiWhirlwind2Timer = urand(1*IN_MILLISECONDS,20*IN_MILLISECONDS);
+ uiKnockdownTimer = 12*IN_MILLISECONDS;
+ uiFrenzyTimer = 6*IN_MILLISECONDS;
+ uiResetTimer = 5*IN_MILLISECONDS;
+ uiYellTimer = urand(20*IN_MILLISECONDS,30*IN_MILLISECONDS); //20 to 30 seconds
+ }
- if (uiWhirlwind2Timer <= diff)
+ void EnterCombat(Unit * /*who*/)
{
- DoCast(me->getVictim(), SPELL_WHIRLWIND2);
- uiWhirlwind2Timer = urand(7*IN_MILLISECONDS,25*IN_MILLISECONDS);
- } else uiWhirlwind2Timer -= diff;
+ DoScriptText(YELL_AGGRO, me);
+ }
- if (uiKnockdownTimer <= diff)
+ void JustRespawned()
{
- DoCast(me->getVictim(), SPELL_KNOCKDOWN);
- uiKnockdownTimer = urand(10*IN_MILLISECONDS,15*IN_MILLISECONDS);
- } else uiKnockdownTimer -= diff;
+ Reset();
+ DoScriptText(YELL_RESPAWN, me);
+ }
- if (uiFrenzyTimer <= diff)
+ void UpdateAI(const uint32 diff)
{
- DoCast(me->getVictim(), SPELL_FRENZY);
- uiFrenzyTimer = urand(20*IN_MILLISECONDS,30*IN_MILLISECONDS);
- } else uiFrenzyTimer -= diff;
+ if (!UpdateVictim())
+ return;
- if (uiYellTimer <= diff)
- {
- DoScriptText(RAND(YELL_RANDOM1,YELL_RANDOM2,YELL_RANDOM3,YELL_RANDOM4,YELL_RANDOM5), me);
- uiYellTimer = urand(20*IN_MILLISECONDS,30*IN_MILLISECONDS); //20 to 30 seconds
- } else uiYellTimer -= diff;
+ if (uiWhirlwindTimer <= diff)
+ {
+ DoCast(me->getVictim(), SPELL_WHIRLWIND);
+ uiWhirlwindTimer = urand(8*IN_MILLISECONDS,18*IN_MILLISECONDS);
+ } else uiWhirlwindTimer -= diff;
- // check if creature is not outside of building
- if (uiResetTimer <= diff)
- {
- if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
+ if (uiWhirlwind2Timer <= diff)
{
- EnterEvadeMode();
- DoScriptText(YELL_EVADE, me);
- }
- uiResetTimer = 5*IN_MILLISECONDS;
- } else uiResetTimer -= diff;
+ DoCast(me->getVictim(), SPELL_WHIRLWIND2);
+ uiWhirlwind2Timer = urand(7*IN_MILLISECONDS,25*IN_MILLISECONDS);
+ } else uiWhirlwind2Timer -= diff;
- DoMeleeAttackIfReady();
- }
-};
+ if (uiKnockdownTimer <= diff)
+ {
+ DoCast(me->getVictim(), SPELL_KNOCKDOWN);
+ uiKnockdownTimer = urand(10*IN_MILLISECONDS,15*IN_MILLISECONDS);
+ } else uiKnockdownTimer -= diff;
+ if (uiFrenzyTimer <= diff)
+ {
+ DoCast(me->getVictim(), SPELL_FRENZY);
+ uiFrenzyTimer = urand(20*IN_MILLISECONDS,30*IN_MILLISECONDS);
+ } else uiFrenzyTimer -= diff;
-CreatureAI* GetAI_boss_drekthar(Creature *_Creature)
-{
- return new boss_drektharAI (_Creature);
-}
+ if (uiYellTimer <= diff)
+ {
+ DoScriptText(RAND(YELL_RANDOM1,YELL_RANDOM2,YELL_RANDOM3,YELL_RANDOM4,YELL_RANDOM5), me);
+ uiYellTimer = urand(20*IN_MILLISECONDS,30*IN_MILLISECONDS); //20 to 30 seconds
+ } else uiYellTimer -= diff;
+
+ // check if creature is not outside of building
+ if (uiResetTimer <= diff)
+ {
+ if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
+ {
+ EnterEvadeMode();
+ DoScriptText(YELL_EVADE, me);
+ }
+ uiResetTimer = 5*IN_MILLISECONDS;
+ } else uiResetTimer -= diff;
+
+ DoMeleeAttackIfReady();
+ }
+ };
+
+
+ CreatureAI *OnGetAI(Creature *creature) const
+ {
+ return new boss_drektharAI(creature);
+ }
+};
void AddSC_boss_drekthar()
{
- Script *newscript;
- newscript = new Script;
- newscript->Name = "boss_drekthar";
- newscript->GetAI = &GetAI_boss_drekthar;
- newscript->RegisterSelf();
+ new boss_drekthar;
} \ No newline at end of file
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp
index 380a841fb7c..2c64c9a744a 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp
@@ -32,99 +32,101 @@ enum Yells
YELL_EVADE = -1810022
};
-struct boss_galvangarAI : public ScriptedAI
+class boss_galvangar : public CreatureScript
{
- boss_galvangarAI(Creature *c) : ScriptedAI(c) {}
+public:
+ boss_galvangar() : CreatureScript("boss_galvangar") { }
-
- uint32 uiCleaveTimer;
- uint32 uiFrighteningShoutTimer;
- uint32 uiWhirlwind1Timer;
- uint32 uiWhirlwind2Timer;
- uint32 uiMortalStrikeTimer;
- uint32 uiResetTimer;
-
-
- void Reset()
+ struct boss_galvangarAI : public ScriptedAI
{
- uiCleaveTimer = urand(1*IN_MILLISECONDS,9*IN_MILLISECONDS);
- uiFrighteningShoutTimer = urand(2*IN_MILLISECONDS,19*IN_MILLISECONDS);
- uiWhirlwind1Timer = urand(1*IN_MILLISECONDS,13*IN_MILLISECONDS);
- uiWhirlwind2Timer = urand(5*IN_MILLISECONDS,20*IN_MILLISECONDS);
- uiMortalStrikeTimer = urand(5*IN_MILLISECONDS,20*IN_MILLISECONDS);
- uiResetTimer = 5*IN_MILLISECONDS;
- }
+ boss_galvangarAI(Creature *c) : ScriptedAI(c) {}
- void EnterCombat(Unit * /*who*/)
- {
- DoScriptText(YELL_AGGRO, me);
- }
- void JustRespawned()
- {
- Reset();
- }
+ uint32 uiCleaveTimer;
+ uint32 uiFrighteningShoutTimer;
+ uint32 uiWhirlwind1Timer;
+ uint32 uiWhirlwind2Timer;
+ uint32 uiMortalStrikeTimer;
+ uint32 uiResetTimer;
- void UpdateAI(const uint32 diff)
- {
- if (!UpdateVictim())
- return;
- if (uiCleaveTimer <= diff)
+ void Reset()
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
- uiCleaveTimer = urand(10*IN_MILLISECONDS,16*IN_MILLISECONDS);
- } else uiCleaveTimer -= diff;
-
- if (uiFrighteningShoutTimer <= diff)
+ uiCleaveTimer = urand(1*IN_MILLISECONDS,9*IN_MILLISECONDS);
+ uiFrighteningShoutTimer = urand(2*IN_MILLISECONDS,19*IN_MILLISECONDS);
+ uiWhirlwind1Timer = urand(1*IN_MILLISECONDS,13*IN_MILLISECONDS);
+ uiWhirlwind2Timer = urand(5*IN_MILLISECONDS,20*IN_MILLISECONDS);
+ uiMortalStrikeTimer = urand(5*IN_MILLISECONDS,20*IN_MILLISECONDS);
+ uiResetTimer = 5*IN_MILLISECONDS;
+ }
+
+ void EnterCombat(Unit * /*who*/)
{
- DoCast(me->getVictim(), SPELL_FRIGHTENING_SHOUT);
- uiFrighteningShoutTimer = urand(10*IN_MILLISECONDS,15*IN_MILLISECONDS);
- } else uiFrighteningShoutTimer -= diff;
+ DoScriptText(YELL_AGGRO, me);
+ }
- if (uiWhirlwind1Timer <= diff)
+ void JustRespawned()
{
- DoCast(me->getVictim(), SPELL_WHIRLWIND1);
- uiWhirlwind1Timer = urand(6*IN_MILLISECONDS,10*IN_MILLISECONDS);
- } else uiWhirlwind1Timer -= diff;
+ Reset();
+ }
- if (uiWhirlwind2Timer <= diff)
+ void UpdateAI(const uint32 diff)
{
- DoCast(me->getVictim(), SPELL_WHIRLWIND2);
- uiWhirlwind2Timer = urand(10*IN_MILLISECONDS,25*IN_MILLISECONDS);
- } else uiWhirlwind2Timer -= diff;
+ if (!UpdateVictim())
+ return;
- if (uiMortalStrikeTimer <= diff)
- {
- DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
- uiMortalStrikeTimer = urand(10*IN_MILLISECONDS,30*IN_MILLISECONDS);
- } else uiMortalStrikeTimer -= diff;
+ if (uiCleaveTimer <= diff)
+ {
+ DoCast(me->getVictim(), SPELL_CLEAVE);
+ uiCleaveTimer = urand(10*IN_MILLISECONDS,16*IN_MILLISECONDS);
+ } else uiCleaveTimer -= diff;
- // check if creature is not outside of building
- if (uiResetTimer <= diff)
- {
- if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
+ if (uiFrighteningShoutTimer <= diff)
+ {
+ DoCast(me->getVictim(), SPELL_FRIGHTENING_SHOUT);
+ uiFrighteningShoutTimer = urand(10*IN_MILLISECONDS,15*IN_MILLISECONDS);
+ } else uiFrighteningShoutTimer -= diff;
+
+ if (uiWhirlwind1Timer <= diff)
+ {
+ DoCast(me->getVictim(), SPELL_WHIRLWIND1);
+ uiWhirlwind1Timer = urand(6*IN_MILLISECONDS,10*IN_MILLISECONDS);
+ } else uiWhirlwind1Timer -= diff;
+
+ if (uiWhirlwind2Timer <= diff)
+ {
+ DoCast(me->getVictim(), SPELL_WHIRLWIND2);
+ uiWhirlwind2Timer = urand(10*IN_MILLISECONDS,25*IN_MILLISECONDS);
+ } else uiWhirlwind2Timer -= diff;
+
+ if (uiMortalStrikeTimer <= diff)
{
- EnterEvadeMode();
- DoScriptText(YELL_EVADE, me);
- }
- uiResetTimer = 5*IN_MILLISECONDS;
- } else uiResetTimer -= diff;
+ DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
+ uiMortalStrikeTimer = urand(10*IN_MILLISECONDS,30*IN_MILLISECONDS);
+ } else uiMortalStrikeTimer -= diff;
- DoMeleeAttackIfReady();
+ // check if creature is not outside of building
+ if (uiResetTimer <= diff)
+ {
+ if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
+ {
+ EnterEvadeMode();
+ DoScriptText(YELL_EVADE, me);
+ }
+ uiResetTimer = 5*IN_MILLISECONDS;
+ } else uiResetTimer -= diff;
+
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI *OnGetAI(Creature *creature) const
+ {
+ return new boss_galvangarAI(creature);
}
};
-CreatureAI* GetAI_boss_galvangar(Creature *_Creature)
-{
- return new boss_galvangarAI (_Creature);
-}
-
void AddSC_boss_galvangar()
{
- Script *newscript;
- newscript = new Script;
- newscript->Name = "boss_galvangar";
- newscript->GetAI = &GetAI_boss_galvangar;
- newscript->RegisterSelf();
+ new boss_galvangar;
}
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp
index 6ae75c0fa06..b0d5528f9bc 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp
@@ -39,92 +39,92 @@ enum Spells
SPELL_STORMBOLT = 20685 // not sure
};
-struct boss_vanndarAI : public ScriptedAI
+class boss_vanndar : public CreatureScript
{
- boss_vanndarAI(Creature *c) : ScriptedAI(c) {}
+public:
+ boss_vanndar() : CreatureScript("boss_vanndar") { }
-
- uint32 uiAvatarTimer;
- uint32 uiThunderclapTimer;
- uint32 uiStormboltTimer;
- uint32 uiResetTimer;
- uint32 uiYellTimer;
-
-
- void Reset()
- {
- uiAvatarTimer = 3*IN_MILLISECONDS;
- uiThunderclapTimer = 4*IN_MILLISECONDS;
- uiStormboltTimer = 6*IN_MILLISECONDS;
- uiResetTimer = 5*IN_MILLISECONDS;
- uiYellTimer = urand(20*IN_MILLISECONDS,30*IN_MILLISECONDS);
- }
-
- void EnterCombat(Unit * /*who*/)
+ struct boss_vanndarAI : public ScriptedAI
{
- DoScriptText(YELL_AGGRO, me);
- }
-
- void JustRespawned()
- {
- Reset();
- DoScriptText(RAND(YELL_RESPAWN1,YELL_RESPAWN2), me);
- }
+ boss_vanndarAI(Creature *c) : ScriptedAI(c) {}
- void UpdateAI(const uint32 diff)
- {
- if (!UpdateVictim())
- return;
+ uint32 uiAvatarTimer;
+ uint32 uiThunderclapTimer;
+ uint32 uiStormboltTimer;
+ uint32 uiResetTimer;
+ uint32 uiYellTimer;
- if (uiAvatarTimer <= diff)
+ void Reset()
{
- DoCast(me->getVictim(), SPELL_AVATAR);
- uiAvatarTimer = urand(15*IN_MILLISECONDS,20*IN_MILLISECONDS);
- } else uiAvatarTimer -= diff;
+ uiAvatarTimer = 3*IN_MILLISECONDS;
+ uiThunderclapTimer = 4*IN_MILLISECONDS;
+ uiStormboltTimer = 6*IN_MILLISECONDS;
+ uiResetTimer = 5*IN_MILLISECONDS;
+ uiYellTimer = urand(20*IN_MILLISECONDS,30*IN_MILLISECONDS);
+ }
- if (uiThunderclapTimer <= diff)
+ void EnterCombat(Unit * /*who*/)
{
- DoCast(me->getVictim(), SPELL_THUNDERCLAP);
- uiThunderclapTimer = urand(5*IN_MILLISECONDS,15*IN_MILLISECONDS);
- } else uiThunderclapTimer -= diff;
+ DoScriptText(YELL_AGGRO, me);
+ }
- if (uiStormboltTimer <= diff)
+ void JustRespawned()
{
- DoCast(me->getVictim(), SPELL_STORMBOLT);
- uiStormboltTimer = urand(10*IN_MILLISECONDS,25*IN_MILLISECONDS);
- } else uiStormboltTimer -= diff;
+ Reset();
+ DoScriptText(RAND(YELL_RESPAWN1,YELL_RESPAWN2), me);
+ }
- if (uiYellTimer <= diff)
+ void UpdateAI(const uint32 diff)
{
- DoScriptText(RAND(YELL_RANDOM1,YELL_RANDOM2,YELL_RANDOM3,YELL_RANDOM4,YELL_RANDOM5,YELL_RANDOM6,YELL_RANDOM7), me);
- uiYellTimer = urand(20*IN_MILLISECONDS,30*IN_MILLISECONDS); //20 to 30 seconds
- } else uiYellTimer -= diff;
+ if (!UpdateVictim())
+ return;
- // check if creature is not outside of building
- if (uiResetTimer <= diff)
- {
- if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
+ if (uiAvatarTimer <= diff)
{
- EnterEvadeMode();
- DoScriptText(YELL_EVADE, me);
- }
- uiResetTimer = 5*IN_MILLISECONDS;
- } else uiResetTimer -= diff;
+ DoCast(me->getVictim(), SPELL_AVATAR);
+ uiAvatarTimer = urand(15*IN_MILLISECONDS,20*IN_MILLISECONDS);
+ } else uiAvatarTimer -= diff;
+
+ if (uiThunderclapTimer <= diff)
+ {
+ DoCast(me->getVictim(), SPELL_THUNDERCLAP);
+ uiThunderclapTimer = urand(5*IN_MILLISECONDS,15*IN_MILLISECONDS);
+ } else uiThunderclapTimer -= diff;
+
+ if (uiStormboltTimer <= diff)
+ {
+ DoCast(me->getVictim(), SPELL_STORMBOLT);
+ uiStormboltTimer = urand(10*IN_MILLISECONDS,25*IN_MILLISECONDS);
+ } else uiStormboltTimer -= diff;
- DoMeleeAttackIfReady();
+ if (uiYellTimer <= diff)
+ {
+ DoScriptText(RAND(YELL_RANDOM1,YELL_RANDOM2,YELL_RANDOM3,YELL_RANDOM4,YELL_RANDOM5,YELL_RANDOM6,YELL_RANDOM7), me);
+ uiYellTimer = urand(20*IN_MILLISECONDS,30*IN_MILLISECONDS); //20 to 30 seconds
+ } else uiYellTimer -= diff;
+
+ // check if creature is not outside of building
+ if (uiResetTimer <= diff)
+ {
+ if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
+ {
+ EnterEvadeMode();
+ DoScriptText(YELL_EVADE, me);
+ }
+ uiResetTimer = 5*IN_MILLISECONDS;
+ } else uiResetTimer -= diff;
+
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI *OnGetAI(Creature *creature) const
+ {
+ return new boss_vanndarAI(creature);
}
};
-CreatureAI* GetAI_boss_vanndar(Creature *_Creature)
-{
- return new boss_vanndarAI (_Creature);
-}
-
void AddSC_boss_vanndar()
{
- Script *newscript;
- newscript = new Script;
- newscript->Name = "boss_vanndar";
- newscript->GetAI = &GetAI_boss_vanndar;
- newscript->RegisterSelf();
+ new boss_vandar;
} \ No newline at end of file