diff options
| -rw-r--r-- | sql/updates/world/3.3.5/2025_10_14_00_world.sql | 4 | ||||
| -rw-r--r-- | src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp | 27 |
2 files changed, 30 insertions, 1 deletions
diff --git a/sql/updates/world/3.3.5/2025_10_14_00_world.sql b/sql/updates/world/3.3.5/2025_10_14_00_world.sql new file mode 100644 index 00000000000..da6b4346c24 --- /dev/null +++ b/sql/updates/world/3.3.5/2025_10_14_00_world.sql @@ -0,0 +1,4 @@ +-- +DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_the_lich_king_valkyr_charge'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(74399, 'spell_the_lich_king_valkyr_charge'); 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 8e3728ac0a0..a8b8db34056 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -1475,7 +1475,7 @@ struct npc_valkyr_shadowguard : public ScriptedAI triggers.sort(Trinity::ObjectDistanceOrderPred(me)); DoCast(target, SPELL_VALKYR_CARRY); - _dropPoint.Relocate(triggers.front()); + _dropPoint.Relocate(triggers.front()->GetPositionX(), triggers.front()->GetPositionY(), me->GetFloorZ() + 2.f); _events.ScheduleEvent(EVENT_MOVE_TO_DROP_POS, 1s + 500ms); } } @@ -2821,6 +2821,30 @@ class spell_the_lich_king_harvest_souls_teleport : public SpellScript } }; +// 74399 - Charge (Valkyr) +class spell_the_lich_king_valkyr_charge : public SpellScript +{ + PrepareSpellScript(spell_the_lich_king_valkyr_charge); + + void ChargeDest(SpellEffIndex effIndex) + { + PreventHitDefaultEffect(effIndex); + + Unit* caster = GetCaster(); + Unit* target = GetExplTargetUnit(); + if (!target) + return; + + Position pos = target->GetPosition(); + caster->GetMotionMaster()->MoveCharge(pos.m_positionX, pos.m_positionY, caster->GetFloorZ() + 2.f); + } + + void Register() override + { + OnEffectLaunch += SpellEffectFn(spell_the_lich_king_valkyr_charge::ChargeDest, EFFECT_0, SPELL_EFFECT_CHARGE_DEST); + } +}; + class achievement_been_waiting_long_time : public AchievementCriteriaScript { public: @@ -2895,6 +2919,7 @@ void AddSC_boss_the_lich_king() RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_the_lich_king_mass_resurrection", SPELL_MASS_RESURRECTION_REAL); RegisterSpellScript(spell_the_lich_king_play_movie); RegisterSpellScript(spell_the_lich_king_harvest_souls_teleport); + RegisterSpellScript(spell_the_lich_king_valkyr_charge); // Achievements new achievement_been_waiting_long_time(); |
