diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp | 182 |
1 files changed, 87 insertions, 95 deletions
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp index abba233496f..7129e61833e 100644 --- a/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp +++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp @@ -9,60 +9,67 @@ Script Data End */ #include "precompiled.h" #include "gundrak.h" -//Spells - -#define SPELL_DETERMINED_STAB 55104 -#define SPELL_GROUND_TREMOR 55142 -#define SPELL_NUMBING_SHOUT 55106 +enum eSpells +{ + SPELL_DETERMINED_STAB = 55104, + SPELL_GROUND_TREMOR = 55142, + SPELL_NUMBING_SHOUT = 55106, -#define SPELL_DETERMINED_GORE 55102 -#define SPELL_DETERMINED_GORE_1 59444 -#define SPELL_QUAKE 55101 -#define SPELL_NUMBING_ROAR 55100 + SPELL_DETERMINED_GORE = 55102, + SPELL_DETERMINED_GORE_1 = 59444, + SPELL_QUAKE = 55101, + SPELL_NUMBING_ROAR = 55100, -#define SPELL_MOJO_FRENZY 55163 -#define SPELL_TRANSFORMATION 55098 //Periodic, The caster transforms into a powerful mammoth, increasing Physical damage done by 25% and granting immunity to Stun effects. + SPELL_MOJO_FRENZY = 55163, + SPELL_TRANSFORMATION = 55098, //Periodic, The caster transforms into a powerful mammoth, increasing Physical damage done by 25% and granting immunity to Stun effects. +}; -#define ACHIEVEMENT_LESS_RABI 2040 +enum eArchivements +{ + ACHIEVEMENT_LESS_RABI = 2040 +}; -//Yell -#define SAY_AGGRO -1604010 -//#define SAY_SLAY_1 -1604011 // not in db -#define SAY_SLAY_2 -1604012 -#define SAY_SLAY_3 -1604013 -#define SAY_DEATH -1604014 -#define SAY_TRANSFORM -1604015 -#define SAY_QUAKE -1604016 -#define EMOTE_TRANSFORM -1604017 +enum eSays +{ + SAY_AGGRO = -1604010, + //SAY_SLAY_1 = -1604011, // not in db + SAY_SLAY_2 = -1604012, + SAY_SLAY_3 = -1604013, + SAY_DEATH = -1604014, + SAY_TRANSFORM = -1604015, + SAY_QUAKE = -1604016, + EMOTE_TRANSFORM = -1604017 +}; struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI { - boss_moorabiAI(Creature *c) : ScriptedAI(c) + boss_moorabiAI(Creature* pCreature) : ScriptedAI(pCreature) { - pInstance = c->GetInstanceData(); + pInstance = pCreature->GetInstanceData(); } ScriptedInstance* pInstance; - bool Phase; - uint32 SPELL_QUAKE_TIMER; - uint32 SPELL_NUMBING_SHOUT_TIMER; - uint32 SPELL_GROUND_TREMOR_TIMER; - uint32 SPELL_DETERMINED_STAB_TIMER; - uint32 SPELL_TRANSFORMATION_TIMER; + + bool bPhase; + + uint32 uiNumblingShoutTimer; + uint32 uiGroundTremorTimer; + uint32 uiDeterminedStabTimer; + uint32 uiTransformationTImer; void Reset() { - SPELL_GROUND_TREMOR_TIMER = 18000; - SPELL_NUMBING_SHOUT_TIMER = 10000; - SPELL_DETERMINED_STAB_TIMER = 20000; - SPELL_TRANSFORMATION_TIMER = 12000; - Phase = false; + uiGroundTremorTimer = 18000; + uiNumblingShoutTimer = 10000; + uiDeterminedStabTimer = 20000; + uiTransformationTImer = 12000; + bPhase = false; - if (pInstance) + if (pInstance) pInstance->SetData(DATA_MOORABI_EVENT, NOT_STARTED); } - void EnterCombat(Unit *who) + void EnterCombat(Unit* pWho) { DoScriptText(SAY_AGGRO, m_creature); DoCast(m_creature, SPELL_MOJO_FRENZY, true); @@ -71,83 +78,67 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI pInstance->SetData(DATA_MOORABI_EVENT, IN_PROGRESS); } - void UpdateAI(const uint32 diff) + void UpdateAI(const uint32 uiDiff) { //Return since we have no target if (!UpdateVictim()) return; - if(Phase == false && m_creature->HasAura(SPELL_TRANSFORMATION)) - Phase = true; - - if(Phase == true) + if(!bPhase && m_creature->HasAura(SPELL_TRANSFORMATION)) { + bPhase = true; m_creature->RemoveAura(SPELL_MOJO_FRENZY); - - if (SPELL_GROUND_TREMOR_TIMER <= diff) - { - DoScriptText(SAY_QUAKE, m_creature); - DoCast(m_creature->getVictim(), SPELL_QUAKE, true); - SPELL_GROUND_TREMOR_TIMER = 10000; - } else SPELL_GROUND_TREMOR_TIMER -= diff; - - if (SPELL_NUMBING_SHOUT_TIMER <= diff) - { - DoCast(m_creature->getVictim(), SPELL_NUMBING_ROAR, true); - SPELL_NUMBING_SHOUT_TIMER = 10000; - } else SPELL_NUMBING_SHOUT_TIMER -=diff; - - if (SPELL_DETERMINED_STAB_TIMER <= diff) - { - DoCast(m_creature->getVictim(), HEROIC(SPELL_DETERMINED_GORE, SPELL_DETERMINED_GORE_1)); - SPELL_DETERMINED_STAB_TIMER = 8000; - } else SPELL_DETERMINED_STAB_TIMER -=diff; } - else + + if (uiGroundTremorTimer <= uiDiff) { - //CAST TRANSFORMATION - if (SPELL_TRANSFORMATION_TIMER <= diff) - { - DoScriptText(EMOTE_TRANSFORM, m_creature); - DoScriptText(SAY_TRANSFORM, m_creature); - DoCast(m_creature, SPELL_TRANSFORMATION, false); - SPELL_TRANSFORMATION_TIMER = 10000; - } else SPELL_TRANSFORMATION_TIMER -= diff; - - //CAST GROUND TERMOR || QUAKE - if (SPELL_GROUND_TREMOR_TIMER <= diff) - { - DoScriptText(SAY_QUAKE, m_creature); + DoScriptText(SAY_QUAKE, m_creature); + if (bPhase) + DoCast(m_creature->getVictim(), SPELL_QUAKE, true); + else DoCast(m_creature->getVictim(), SPELL_GROUND_TREMOR, true); - SPELL_GROUND_TREMOR_TIMER = 10000; - } else SPELL_GROUND_TREMOR_TIMER -= diff; + uiGroundTremorTimer = 10000; + } else uiGroundTremorTimer -= uiDiff; - //CAST NUMBING SHOUT || DETERMINED_STAB - if (SPELL_NUMBING_SHOUT_TIMER <= diff) - { + if (uiNumblingShoutTimer <= uiDiff) + { + if (bPhase) + DoCast(m_creature->getVictim(), SPELL_NUMBING_ROAR, true); + else DoCast(m_creature->getVictim(), SPELL_NUMBING_SHOUT, true); - SPELL_NUMBING_SHOUT_TIMER = 10000; - } else SPELL_NUMBING_SHOUT_TIMER -= diff; + uiNumblingShoutTimer = 10000; + } else uiNumblingShoutTimer -=uiDiff; - if (SPELL_DETERMINED_STAB_TIMER <= diff) - { + if (uiDeterminedStabTimer <= uiDiff) + { + if (bPhase) + DoCast(m_creature->getVictim(), HEROIC(SPELL_DETERMINED_GORE, SPELL_DETERMINED_GORE_1)); + else DoCast(m_creature->getVictim(), SPELL_DETERMINED_STAB, true); - SPELL_DETERMINED_STAB_TIMER = 8000; - } else SPELL_DETERMINED_STAB_TIMER -= diff; - } + uiDeterminedStabTimer = 8000; + } else uiDeterminedStabTimer -=uiDiff; - DoMeleeAttackIfReady(); + if (!bPhase && uiTransformationTImer <= uiDiff) + { + DoScriptText(EMOTE_TRANSFORM, m_creature); + DoScriptText(SAY_TRANSFORM, m_creature); + DoCast(m_creature, SPELL_TRANSFORMATION, false); + uiTransformationTImer = 10000; + } else uiTransformationTImer -= uiDiff; + + DoMeleeAttackIfReady(); } - void JustDied(Unit *killer) + + void JustDied(Unit* pKiller) { - DoScriptText(SAY_DEATH, m_creature); + DoScriptText(SAY_DEATH, m_creature); - if (HeroicMode && Phase == false) + if (HeroicMode && !bPhase) { AchievementEntry const *AchievLessRabi = GetAchievementStore()->LookupEntry(ACHIEVEMENT_LESS_RABI); if (AchievLessRabi) { - Map *pMap = m_creature->GetMap(); + Map* pMap = m_creature->GetMap(); if (pMap && pMap->IsDungeon()) { Map::PlayerList const &players = pMap->GetPlayers(); @@ -160,23 +151,24 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI if (pInstance) pInstance->SetData(DATA_MOORABI_EVENT, DONE); } - void KilledUnit(Unit *victim) + + void KilledUnit(Unit* pVictim) { - if (victim == m_creature) + if (pVictim == m_creature) return; DoScriptText(RAND(SAY_SLAY_2,SAY_SLAY_3), m_creature); } }; -CreatureAI *GetAI_boss_moorabi(Creature *pCreature) +CreatureAI* GetAI_boss_moorabi(Creature *pCreature) { return new boss_moorabiAI(pCreature); } void AddSC_boss_moorabi() { - Script *newscript; + Script* newscript; newscript = new Script; newscript->Name = "boss_moorabi"; |