diff options
author | Keader <keader.android@gmail.com> | 2020-10-14 08:31:15 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-14 08:31:15 -0300 |
commit | 5fee99bdbcabefca9b27308053f68d947c169b22 (patch) | |
tree | 4aa66fe56196018925c684220de84da8166854ba /src | |
parent | 684910a230b2e8e780ad24bc0c4eece835bc249a (diff) |
Scripts/ICC: Some fixes in Valkyr Shadowguard (#25572)
- Added missing transformation spell
- Fixed Soul Siphon casted in random targets. It should always cast in top threat player.
- Fixed combat reach of transformation
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp | 22 |
1 files changed, 13 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 22adbf3e4dc..69b749b1f11 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -126,6 +126,7 @@ enum Spells SPELL_LIFE_SIPHON = 73488, SPELL_LIFE_SIPHON_HEAL = 73489, SPELL_EJECT_ALL_PASSENGERS = 68576, + SPELL_VALKYR_TRANSFORM = 73501, // Phase 3 SPELL_VILE_SPIRITS = 70498, @@ -1442,7 +1443,10 @@ private: struct npc_valkyr_shadowguard : public ScriptedAI { - npc_valkyr_shadowguard(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { } + npc_valkyr_shadowguard(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) + { + SetCombatMovement(false); + } void Reset() override { @@ -1479,10 +1483,6 @@ struct npc_valkyr_shadowguard : public ScriptedAI me->ClearUnitState(UNIT_STATE_EVADE); } - void AttackStart(Unit* /*target*/) override - { - } - void MovementInform(uint32 type, uint32 id) override { if (type != POINT_MOTION_TYPE) @@ -1512,13 +1512,15 @@ struct npc_valkyr_shadowguard : public ScriptedAI triggers.sort(Trinity::ObjectDistanceOrderPred(me)); DoCast(target, SPELL_VALKYR_CARRY); _dropPoint.Relocate(triggers.front()); - _events.ScheduleEvent(EVENT_MOVE_TO_DROP_POS, 1500ms); + _events.ScheduleEvent(EVENT_MOVE_TO_DROP_POS, 1s + 500ms); } } else me->DespawnOrUnsummon(); break; case POINT_SIPHON: + DoCastSelf(SPELL_VALKYR_TRANSFORM); + me->SetReactState(REACT_AGGRESSIVE); DoZoneInCombat(); _events.ScheduleEvent(EVENT_LIFE_SIPHON, 2s); break; @@ -1557,9 +1559,8 @@ struct npc_valkyr_shadowguard : public ScriptedAI me->GetMotionMaster()->MovePoint(POINT_DROP_PLAYER, _dropPoint); break; case EVENT_LIFE_SIPHON: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1)) - DoCast(target, SPELL_LIFE_SIPHON); - _events.ScheduleEvent(EVENT_LIFE_SIPHON, 2500ms); + DoCastVictim(SPELL_LIFE_SIPHON); + _events.Repeat(2s + 500ms); break; case EVENT_MOVE_TO_CENTER: { @@ -1571,6 +1572,9 @@ struct npc_valkyr_shadowguard : public ScriptedAI default: break; } + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; } // no melee attacks |