aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeader <keader.android@gmail.com>2020-10-14 08:31:15 -0300
committerGitHub <noreply@github.com>2020-10-14 08:31:15 -0300
commit5fee99bdbcabefca9b27308053f68d947c169b22 (patch)
tree4aa66fe56196018925c684220de84da8166854ba /src
parent684910a230b2e8e780ad24bc0c4eece835bc249a (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.cpp22
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