diff options
| author | Shauren <shauren.trinity@gmail.com> | 2019-02-15 21:32:07 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-11-23 23:01:47 +0100 |
| commit | c14cf5a892f62a8700d1a6ccde102549bde1be8e (patch) | |
| tree | b3195395ede5f2a8a0d89d918f65207baa2cda4c /src/server/scripts | |
| parent | ed5ba915f1ec7dad8f4935b62b0ec2d202d26c1c (diff) | |
Core/Misc: Added lambda support to EventProcessor
Closes #22909
(cherry picked from commit 813f693768ee94864b0d24423b9265bde2c9903d)
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp | 26 |
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); |
