From 1e8a62fb2666dd9187d7f9974e70bfb6e2c0976a Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 13 Mar 2023 02:29:30 -0400 Subject: [PATCH] Partial revert of "Core/Spells: Moved SpellVisual functions from Unit to WorldObject" - client only accepts unit guids in these packets (orphan visuals not reverted) Port From (https://github.com/TrinityCore/TrinityCore/commit/cbdb25595899aeb3d93e8d468a05bf8ef1f8e124) --- Source/Game/Entities/Object/WorldObject.cs | 54 --------------------- Source/Game/Entities/Unit/Unit.cs | 56 +++++++++++++++++++++- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/Source/Game/Entities/Object/WorldObject.cs b/Source/Game/Entities/Object/WorldObject.cs index e8672927a..7c1c890eb 100644 --- a/Source/Game/Entities/Object/WorldObject.cs +++ b/Source/Game/Entities/Object/WorldObject.cs @@ -2456,42 +2456,6 @@ namespace Game.Entities return spell.Prepare(targets.Targets, args.TriggeringAura); } - public void SendPlaySpellVisual(WorldObject target, uint spellVisualId, ushort missReason, ushort reflectStatus, float travelSpeed, bool speedAsTime = false) - { - PlaySpellVisual playSpellVisual = new(); - playSpellVisual.Source = GetGUID(); - playSpellVisual.Target = target.GetGUID(); - playSpellVisual.TargetPosition = target.GetPosition(); - playSpellVisual.SpellVisualID = spellVisualId; - playSpellVisual.TravelSpeed = travelSpeed; - playSpellVisual.MissReason = missReason; - playSpellVisual.ReflectStatus = reflectStatus; - playSpellVisual.SpeedAsTime = speedAsTime; - SendMessageToSet(playSpellVisual, true); - } - - public void SendPlaySpellVisual(Position targetPosition, float launchDelay, uint spellVisualId, ushort missReason, ushort reflectStatus, float travelSpeed, bool speedAsTime = false) - { - PlaySpellVisual playSpellVisual = new(); - playSpellVisual.Source = GetGUID(); - playSpellVisual.TargetPosition = targetPosition; - playSpellVisual.LaunchDelay = launchDelay; - playSpellVisual.SpellVisualID = spellVisualId; - playSpellVisual.TravelSpeed = travelSpeed; - playSpellVisual.MissReason = missReason; - playSpellVisual.ReflectStatus = reflectStatus; - playSpellVisual.SpeedAsTime = speedAsTime; - SendMessageToSet(playSpellVisual, true); - } - - void SendCancelSpellVisual(uint id) - { - CancelSpellVisual cancelSpellVisual = new(); - cancelSpellVisual.Source = GetGUID(); - cancelSpellVisual.SpellVisualID = id; - SendMessageToSet(cancelSpellVisual, true); - } - void SendPlayOrphanSpellVisual(ObjectGuid target, uint spellVisualId, float travelSpeed, bool speedAsTime = false, bool withSourceOrientation = false) { PlayOrphanSpellVisual playOrphanSpellVisual = new(); @@ -2549,24 +2513,6 @@ namespace Game.Entities SendMessageToSet(cancelOrphanSpellVisual, true); } - public void SendPlaySpellVisualKit(uint id, uint type, uint duration) - { - PlaySpellVisualKit playSpellVisualKit = new(); - playSpellVisualKit.Unit = GetGUID(); - playSpellVisualKit.KitRecID = id; - playSpellVisualKit.KitType = type; - playSpellVisualKit.Duration = duration; - SendMessageToSet(playSpellVisualKit, true); - } - - void SendCancelSpellVisualKit(uint id) - { - CancelSpellVisualKit cancelSpellVisualKit = new(); - cancelSpellVisualKit.Source = GetGUID(); - cancelSpellVisualKit.SpellVisualKitID = id; - SendMessageToSet(cancelSpellVisualKit, true); - } - // function based on function Unit::CanAttack from 13850 client public bool IsValidAttackTarget(WorldObject target, SpellInfo bySpell = null) { diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs index 99b8e5459..91f6d2e3d 100644 --- a/Source/Game/Entities/Unit/Unit.cs +++ b/Source/Game/Entities/Unit/Unit.cs @@ -1129,7 +1129,61 @@ namespace Game.Entities } } - void CancelSpellMissiles(uint spellId, bool reverseMissile = false) + public void SendPlaySpellVisual(Unit target, uint spellVisualId, ushort missReason, ushort reflectStatus, float travelSpeed, bool speedAsTime = false) + { + PlaySpellVisual playSpellVisual = new(); + playSpellVisual.Source = GetGUID(); + playSpellVisual.Target = target.GetGUID(); + playSpellVisual.TargetPosition = target.GetPosition(); + playSpellVisual.SpellVisualID = spellVisualId; + playSpellVisual.TravelSpeed = travelSpeed; + playSpellVisual.MissReason = missReason; + playSpellVisual.ReflectStatus = reflectStatus; + playSpellVisual.SpeedAsTime = speedAsTime; + SendMessageToSet(playSpellVisual, true); + } + + public void SendPlaySpellVisual(Position targetPosition, float launchDelay, uint spellVisualId, ushort missReason, ushort reflectStatus, float travelSpeed, bool speedAsTime = false) + { + PlaySpellVisual playSpellVisual = new(); + playSpellVisual.Source = GetGUID(); + playSpellVisual.TargetPosition = targetPosition; + playSpellVisual.LaunchDelay = launchDelay; + playSpellVisual.SpellVisualID = spellVisualId; + playSpellVisual.TravelSpeed = travelSpeed; + playSpellVisual.MissReason = missReason; + playSpellVisual.ReflectStatus = reflectStatus; + playSpellVisual.SpeedAsTime = speedAsTime; + SendMessageToSet(playSpellVisual, true); + } + + public void SendCancelSpellVisual(uint id) + { + CancelSpellVisual cancelSpellVisual = new(); + cancelSpellVisual.Source = GetGUID(); + cancelSpellVisual.SpellVisualID = id; + SendMessageToSet(cancelSpellVisual, true); + } + + public void SendPlaySpellVisualKit(uint id, uint type, uint duration) + { + PlaySpellVisualKit playSpellVisualKit = new(); + playSpellVisualKit.Unit = GetGUID(); + playSpellVisualKit.KitRecID = id; + playSpellVisualKit.KitType = type; + playSpellVisualKit.Duration = duration; + SendMessageToSet(playSpellVisualKit, true); + } + + public void SendCancelSpellVisualKit(uint id) + { + CancelSpellVisualKit cancelSpellVisualKit = new(); + cancelSpellVisualKit.Source = GetGUID(); + cancelSpellVisualKit.SpellVisualKitID = id; + SendMessageToSet(cancelSpellVisualKit, true); + } + + public void CancelSpellMissiles(uint spellId, bool reverseMissile = false) { bool hasMissile = false; foreach (var pair in m_Events.GetEvents())