Core/Spells: Remove spell range increase when caster or target move backwards

Port From (https://github.com/TrinityCore/TrinityCore/commit/f19e1a271618a35515512ce2a64330f21133616c)
This commit is contained in:
Hondacrx
2024-08-31 17:44:12 -04:00
parent a964b9c7f8
commit fa10c00734
2 changed files with 8 additions and 2 deletions
+7 -1
View File
@@ -6557,6 +6557,12 @@ namespace Game.Spells
return SpellCastResult.SpellCastOk;
}
public static bool CanIncreaseRangeByMovement(Unit unit)
{
// forward running only
return unit.HasUnitMovementFlag(MovementFlag.Forward | MovementFlag.StrafeLeft | MovementFlag.StrafeRight | MovementFlag.Falling) && !unit.IsWalking();
}
(float minRange, float maxRange) GetMinMaxRange(bool strict)
{
float rangeMod = 0.0f;
@@ -6598,7 +6604,7 @@ namespace Game.Spells
}
}
if (target != null && unitCaster != null && unitCaster.IsMoving() && target.IsMoving() && !unitCaster.IsWalking() && !target.IsWalking() &&
if (target != null && unitCaster != null && CanIncreaseRangeByMovement(target) && CanIncreaseRangeByMovement(unitCaster) &&
(m_spellInfo.RangeEntry.HasFlag(SpellRangeFlag.Melee) || target.IsPlayer()))
rangeMod += 8.0f / 3.0f;
}