diff options
| author | Gustavo <sirikfoll@hotmail.com> | 2017-08-17 12:03:56 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-17 12:03:56 -0300 |
| commit | 22a7956069c293a3f8eab8adcd84a9f4703f364a (patch) | |
| tree | e3bb77f4da2c3127be444a64808366e849f53935 /src/server/scripts | |
| parent | 7b747848ede0bdb7e12374d3560059ec708e177a (diff) | |
Core/Scripts: More fixes in boss Lich King (#20147)
* Core/Scripts: More fixes in boss Lich King
Fix Valkyr charge spell, they will no longer ignore Z position and become unreachable.
Correct height of Spirit Bomb and added the 3 seconds delay on his explosion.
Set the Trigger inside frostmourne room as active, to avoid problems with reseting the room, e.g: Spirit Bombs not despawning and Wicked Spirits stuck in evade.
Use correct InhabitType for Wicked and Vile Spirits, this avoid a situation where they could spawn falling.
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp index 07065c48e4f..7b1de4c8bfe 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -268,7 +268,10 @@ enum Events // Strangulate Vehicle (Harvest Soul) EVENT_TELEPORT, EVENT_MOVE_TO_LICH_KING, - EVENT_DESPAWN_SELF + EVENT_DESPAWN_SELF, + + //Spirit Bomb + EVENT_BOMB_EXPLOSION }; enum EventGroups @@ -1057,7 +1060,6 @@ class boss_the_lich_king : public CreatureScript summon->RemoveAurasDueToSpell(SPELL_VILE_SPIRIT_MOVE_SEARCH); summon->RemoveAurasDueToSpell(SPELL_VILE_SPIRIT_DAMAGE_SEARCH); summon->GetMotionMaster()->MoveTargetedHome(); - summon->GetMotionMaster()->MoveRandom(10.0f); } else if (summon->GetEntry() == NPC_RAGING_SPIRIT) summon->AI()->DoAction(ACTION_DISABLE_RAGING); @@ -1074,6 +1076,7 @@ class boss_the_lich_king : public CreatureScript { triggers.sort(Trinity::ObjectDistanceOrderPred(terenas, true)); Creature* spawner = triggers.front(); + spawner->setActive(true); spawner->CastSpell(spawner, SPELL_SUMMON_SPIRIT_BOMB_1, true); // summons bombs randomly spawner->CastSpell(spawner, SPELL_SUMMON_SPIRIT_BOMB_2, true); // summons bombs on players spawner->m_Events.AddEvent(new TriggerWickedSpirit(spawner), spawner->m_Events.CalculateTime(3000)); @@ -1974,20 +1977,29 @@ class npc_spirit_bomb : public CreatureScript if (type != POINT_MOTION_TYPE || point != POINT_GROUND) return; - me->RemoveAllAuras(); - DoCastAOE(SPELL_EXPLOSION); - me->DespawnOrUnsummon(1000); + _events.ScheduleEvent(EVENT_BOMB_EXPLOSION, 3000); } void AttackStart(Unit* /*victim*/) override { } - void UpdateAI(uint32 /*diff*/) override + void UpdateAI(uint32 diff) override { UpdateVictim(); - // no melee attacks + + _events.Update(diff); + + if (_events.ExecuteEvent() == EVENT_BOMB_EXPLOSION) + { + me->RemoveAllAuras(); + DoCastAOE(SPELL_EXPLOSION); + me->DespawnOrUnsummon(1000); + } } + + private: + EventMap _events; }; CreatureAI* GetAI(Creature* creature) const override @@ -2509,8 +2521,9 @@ class spell_the_lich_king_summon_into_air : public SpellScriptLoader // spirit bombs get higher if (GetSpellInfo()->Effects[effIndex].MiscValue == NPC_SPIRIT_BOMB) { - dest->RelocateOffset(offset); - GetHitDest()->RelocateOffset(offset); + static Position const offsetExtra = { 0.0f, 0.0f, 5.0f, 0.0f }; + dest->RelocateOffset(offsetExtra); + GetHitDest()->RelocateOffset(offsetExtra); } } |
