diff options
| author | ModoX <moardox@gmail.com> | 2023-06-24 01:16:00 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-24 01:16:00 +0200 |
| commit | 80e22230c34106753cd6be57d9a496642e47216d (patch) | |
| tree | cccccd6ce252930c2439f724ec923fa53ffc0633 /src/server/game/Spells/Spell.cpp | |
| parent | 8ffc4c1034931d04f9904187c76b730f2ae61965 (diff) | |
Core/Spells: Implemented target type TARGET_DEST_DEST_TARGET_TOWARDS_CASTER (#29085)
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
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(); |
