From 80e22230c34106753cd6be57d9a496642e47216d Mon Sep 17 00:00:00 2001 From: ModoX Date: Sat, 24 Jun 2023 01:16:00 +0200 Subject: Core/Spells: Implemented target type TARGET_DEST_DEST_TARGET_TOWARDS_CASTER (#29085) --- src/server/game/Spells/Spell.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/server/game/Spells/Spell.cpp') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 2c2d8a8f1c0..8a55827d6d6 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -1674,6 +1674,18 @@ void Spell::SelectImplicitDestDestTargets(SpellEffectInfo const& spellEffectInfo case TARGET_DEST_DEST_GROUND: dest._position.m_positionZ = m_caster->GetMapHeight(dest._position.GetPositionX(), dest._position.GetPositionY(), dest._position.GetPositionZ()); break; + case TARGET_DEST_DEST_TARGET_TOWARDS_CASTER: + { + float dist = spellEffectInfo.CalcRadius(m_caster); + Position pos = dest._position; + float angle = pos.GetAbsoluteAngle(m_caster) - m_caster->GetOrientation(); + + m_caster->MovePositionToFirstCollision(pos, dist, angle); + pos.SetOrientation(m_caster->GetAbsoluteAngle(dest._position)); + + dest.Relocate(pos); + break; + } default: { float angle = targetType.CalcDirectionAngle(); -- cgit v1.2.3