aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorccrs <ccrs@users.noreply.github.com>2025-10-14 17:57:53 +0200
committerccrs <ccrs@users.noreply.github.com>2025-10-14 17:57:53 +0200
commit9e53591e98401c55b4c75d2b7f9af4f9353d88fa (patch)
tree344d63ef112d45f9bd46b6b0eb8396cf7e4a036b
parenta1940abbc9fbe1e1d9441a7386bf9ae461ef7b54 (diff)
Scripts/ICC: improve Lich King's Valkyr charge and path cosmetics
-rw-r--r--sql/updates/world/3.3.5/2025_10_14_00_world.sql4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp27
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();