diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-06-30 00:36:03 +0200 |
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-06-30 00:36:03 +0200 |
| commit | 676c7341d69bc93e95f147608635655fd91c79b9 (patch) | |
| tree | 934a1bae2a8c791aad0bde4fe4acd04ecc7e2bf4 /src/server/scripts/Kalimdor | |
| parent | 83066a200202d7a487d11389e73173c1db0c391e (diff) | |
| parent | 718fc5bfc94bdfa8c94a5ed646f31305ab2b08bd (diff) | |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts:
src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
Diffstat (limited to 'src/server/scripts/Kalimdor')
4 files changed, 53 insertions, 47 deletions
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp index 535d9a4425b..525f71b7d01 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp @@ -21,8 +21,14 @@ enum Spells { - SPELL_POISON_CLOUD = 3815, - SPELL_FRENZIED_RAGE = 3490 + SPELL_POISON_CLOUD = 3815, + SPELL_FRENZIED_RAGE = 3490 +}; + +enum Events +{ + EVENT_POISON_CLOUD = 1, + EVENT_FRENZIED_RAGE = 2 }; class boss_aku_mai : public CreatureScript @@ -30,41 +36,25 @@ class boss_aku_mai : public CreatureScript public: boss_aku_mai() : CreatureScript("boss_aku_mai") { } - CreatureAI* GetAI(Creature* creature) const + struct boss_aku_maiAI : public BossAI { - return new boss_aku_maiAI (creature); - } - - struct boss_aku_maiAI : public ScriptedAI - { - boss_aku_maiAI(Creature* creature) : ScriptedAI(creature) - { - instance = creature->GetInstanceScript(); - } - - uint32 poisonCloudTimer; - bool IsEnraged; - - InstanceScript* instance; + boss_aku_maiAI(Creature* creature) : BossAI(creature, TYPE_AKU_MAI) { } void Reset() { - poisonCloudTimer = urand(5000, 9000); IsEnraged = false; - if (instance) - instance->SetData(TYPE_AKU_MAI, NOT_STARTED); + _Reset(); } void EnterCombat(Unit* /*who*/) { - if (instance) - instance->SetData(TYPE_AKU_MAI, IN_PROGRESS); + events.ScheduleEvent(EVENT_POISON_CLOUD, urand(5000, 9000)); + _EnterCombat(); } void JustDied(Unit* /*killer*/) { - if (instance) - instance->SetData(TYPE_AKU_MAI, DONE); + _JustDied(); } void UpdateAI(uint32 diff) @@ -72,21 +62,38 @@ public: if (!UpdateVictim()) return; - if (poisonCloudTimer < diff) - { - DoCastVictim(SPELL_POISON_CLOUD); - poisonCloudTimer = urand(25000, 50000); - } else poisonCloudTimer -= diff; + events.Update(diff); if (!IsEnraged && HealthBelowPct(30)) + events.ScheduleEvent(EVENT_FRENZIED_RAGE, 100); + + while (uint32 eventId = events.ExecuteEvent()) { - DoCast(me, SPELL_FRENZIED_RAGE); - IsEnraged = true; + switch (eventId) + { + case EVENT_POISON_CLOUD: + DoCastVictim(SPELL_POISON_CLOUD); + events.ScheduleEvent(EVENT_POISON_CLOUD, urand(25000, 50000)); + break; + case EVENT_FRENZIED_RAGE: + DoCast(me, SPELL_FRENZIED_RAGE); + IsEnraged = true; + break; + default: + break; + } } - DoMeleeAttackIfReady(); } + + private: + bool IsEnraged; }; + + CreatureAI* GetAI(Creature* creature) const + { + return new boss_aku_maiAI (creature); + } }; void AddSC_boss_aku_mai() diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp index 498a4368168..39428e07fd8 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp @@ -135,12 +135,12 @@ public: } DoMeleeAttackIfReady(); } - - CreatureAI* GetAI(Creature* creature) const - { - return new boss_aeonusAI (creature); - } }; + + CreatureAI* GetAI(Creature* creature) const + { + return new boss_aeonusAI (creature); + } }; void AddSC_boss_aeonus() diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp index d02dc0dd359..bd217ce51ee 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp @@ -140,12 +140,12 @@ public: DoMeleeAttackIfReady(); } - - CreatureAI* GetAI(Creature* creature) const - { - return new boss_chrono_lord_dejaAI (creature); - } }; + + CreatureAI* GetAI(Creature* creature) const + { + return new boss_chrono_lord_dejaAI (creature); + } }; void AddSC_boss_chrono_lord_deja() diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp index 8ded2388083..f679fa4ee62 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp @@ -138,13 +138,12 @@ public: } DoMeleeAttackIfReady(); } - - CreatureAI* GetAI(Creature* creature) const - { - return new boss_temporusAI (creature); - } }; + CreatureAI* GetAI(Creature* creature) const + { + return new boss_temporusAI (creature); + } }; void AddSC_boss_temporus() |
