aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
index 90bc62d3b12..85592df25cd 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
@@ -127,22 +127,6 @@ enum Phases
PHASE_OUTRO = 3
};
-class GravityElapseKnockupEvent : public BasicEvent
-{
- public:
- GravityElapseKnockupEvent(Unit* caster, uint32 difficultySpellId) : _caster(caster), _difficultySpellId(difficultySpellId) { }
-
- bool Execute(uint64 /*time*/, uint32 /*diff*/) override
- {
- _caster->CastSpell(_caster, _difficultySpellId);
- _caster->CastSpell(_caster, SPELL_GRAVITY_LAPSE_FLY);
- return true;
- }
- private:
- Unit* _caster;
- uint32 _difficultySpellId;
-};
-
struct boss_felblood_kaelthas : public BossAI
{
boss_felblood_kaelthas(Creature* creature) : BossAI(creature, DATA_KAELTHAS_SUNSTRIDER)
@@ -238,10 +222,18 @@ struct boss_felblood_kaelthas : public BossAI
switch (spell->Id)
{
case SPELL_GRAVITY_LAPSE_INITIAL:
+ {
DoCast(target, gravityLapseTeleportSpells[_gravityLapseTargetCount], true);
- target->m_Events.AddEventAtOffset(new GravityElapseKnockupEvent(target, SPELL_GRAVITY_LAPSE_DAMAGE), 400ms);
+ uint32 gravityLapseDamageSpell = SPELL_GRAVITY_LAPSE_DAMAGE;
+ target->m_Events.AddEventAtOffset([target, gravityLapseDamageSpell]()
+ {
+ target->CastSpell(target, gravityLapseDamageSpell);
+ target->CastSpell(target, SPELL_GRAVITY_LAPSE_FLY);
+
+ }, 400ms);
_gravityLapseTargetCount++;
break;
+ }
case SPELL_CLEAR_FLIGHT:
target->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_FLY);
target->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_DAMAGE);