Core/Movement: Fixed creature hover

Port From (https://github.com/TrinityCore/TrinityCore/commit/2e2b29861878fda2d27156c71a1d8ed7dbe0b4fe)
This commit is contained in:
hondacrx
2021-08-24 11:10:59 -04:00
parent 1c5bb258d5
commit 89058fec83
9 changed files with 59 additions and 90 deletions
+1 -1
View File
@@ -1531,7 +1531,7 @@ namespace Game.Entities
float dx = GetPositionX() - obj.GetPositionX();
float dy = GetPositionY() - obj.GetPositionY();
float dz = GetPositionZMinusOffset() - obj.GetPositionZMinusOffset();
float dz = GetPositionZ() - obj.GetPositionZ();
float distsq = (dx * dx) + (dy * dy) + (dz * dz);
float maxdist = GetMeleeRange(obj) + GetTotalAuraModifier(AuraType.ModAutoAttackRange);
+6 -10
View File
@@ -198,7 +198,7 @@ namespace Game.Entities
return;
MoveSplineInit init = new(this);
init.MoveTo(GetPositionX(), GetPositionY(), GetPositionZMinusOffset(), false);
init.MoveTo(GetPositionX(), GetPositionY(), GetPositionZ(), false);
init.SetFacing(ori);
init.Launch();
}
@@ -616,6 +616,11 @@ namespace Game.Entities
GetVehicleKit().RelocatePassengers();
}
public float GetHoverOffset()
{
return HasUnitMovementFlag(MovementFlag.Hover) ? m_unitData.HoverHeight : 0.0f;
}
public bool IsWithinBoundaryRadius(Unit obj)
{
if (!obj || !IsInMap(obj) || !IsInPhase(obj))
@@ -1577,15 +1582,6 @@ namespace Game.Entities
SendMessageToSet(data, true);
}
public float GetPositionZMinusOffset()
{
float offset = 0.0f;
if (HasUnitMovementFlag(MovementFlag.Hover))
offset = m_unitData.HoverHeight;
return GetPositionZ() - offset;
}
public Unit GetUnitBeingMoved()
{
Player player = ToPlayer();