aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Kalimdor
diff options
context:
space:
mode:
authorVincent-Michael <Vincent_Michael@gmx.de>2013-06-30 00:36:03 +0200
committerVincent-Michael <Vincent_Michael@gmx.de>2013-06-30 00:36:03 +0200
commit676c7341d69bc93e95f147608635655fd91c79b9 (patch)
tree934a1bae2a8c791aad0bde4fe4acd04ecc7e2bf4 /src/server/scripts/Kalimdor
parent83066a200202d7a487d11389e73173c1db0c391e (diff)
parent718fc5bfc94bdfa8c94a5ed646f31305ab2b08bd (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')
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp71
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp10
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp10
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp9
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()