Core/CreatureAI: CheckBoundary -> IsInBoundary, better reflects what it does.
Port From (https://github.com/TrinityCore/TrinityCore/commit/994121e671127ce11df4e631ab0a4c310234191f)
This commit is contained in:
@@ -252,13 +252,13 @@ namespace Game.AI
|
|||||||
List<KeyValuePair<int, int>> outOfBounds = new();
|
List<KeyValuePair<int, int>> outOfBounds = new();
|
||||||
|
|
||||||
Position startPosition = owner.GetPosition();
|
Position startPosition = owner.GetPosition();
|
||||||
if (!CheckBoundary(startPosition)) // fall back to creature position
|
if (!IsInBoundary(startPosition)) // fall back to creature position
|
||||||
{
|
{
|
||||||
startPosition = me.GetPosition();
|
startPosition = me.GetPosition();
|
||||||
if (!CheckBoundary(startPosition))
|
if (!IsInBoundary(startPosition))
|
||||||
{
|
{
|
||||||
startPosition = me.GetHomePosition();
|
startPosition = me.GetHomePosition();
|
||||||
if (!CheckBoundary(startPosition)) // fall back to creature home position
|
if (!IsInBoundary(startPosition)) // fall back to creature home position
|
||||||
return CypherStrings.CreatureNoInteriorPointFound;
|
return CypherStrings.CreatureNoInteriorPointFound;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -281,7 +281,7 @@ namespace Game.AI
|
|||||||
if (!alreadyChecked.Contains(next)) // never check a coordinate twice
|
if (!alreadyChecked.Contains(next)) // never check a coordinate twice
|
||||||
{
|
{
|
||||||
Position nextPos = new(startPosition.GetPositionX() + next.Key * SharedConst.BoundaryVisualizeStepSize, startPosition.GetPositionY() + next.Value * SharedConst.BoundaryVisualizeStepSize, startPosition.GetPositionZ());
|
Position nextPos = new(startPosition.GetPositionX() + next.Key * SharedConst.BoundaryVisualizeStepSize, startPosition.GetPositionY() + next.Value * SharedConst.BoundaryVisualizeStepSize, startPosition.GetPositionZ());
|
||||||
if (CheckBoundary(nextPos))
|
if (IsInBoundary(nextPos))
|
||||||
Q.Add(next);
|
Q.Add(next);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -314,7 +314,7 @@ namespace Game.AI
|
|||||||
return boundsWarning ? CypherStrings.CreatureMovementMaybeUnbounded : 0;
|
return boundsWarning ? CypherStrings.CreatureMovementMaybeUnbounded : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool CheckBoundary(Position who = null)
|
public bool IsInBoundary(Position who = null)
|
||||||
{
|
{
|
||||||
if (_boundary == null)
|
if (_boundary == null)
|
||||||
return true;
|
return true;
|
||||||
@@ -327,7 +327,7 @@ namespace Game.AI
|
|||||||
|
|
||||||
public bool CheckInRoom()
|
public bool CheckInRoom()
|
||||||
{
|
{
|
||||||
if (CheckBoundary())
|
if (IsInBoundary())
|
||||||
return true;
|
return true;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -529,7 +529,7 @@ namespace Game.AI
|
|||||||
foreach (var pair in me.GetCombatManager().GetPvECombatRefs())
|
foreach (var pair in me.GetCombatManager().GetPvECombatRefs())
|
||||||
{
|
{
|
||||||
Unit target = pair.Value.GetOther(me);
|
Unit target = pair.Value.GetOther(me);
|
||||||
if (target.IsControlledByPlayer() && !CheckBoundary(target))
|
if (target.IsControlledByPlayer() && !IsInBoundary(target))
|
||||||
target.NearTeleportTo(x, y, z, 0);
|
target.NearTeleportTo(x, y, z, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -604,7 +604,7 @@ namespace Game.AI
|
|||||||
public override void JustDied(Unit killer) { _JustDied(); }
|
public override void JustDied(Unit killer) { _JustDied(); }
|
||||||
public override void JustReachedHome() { _JustReachedHome(); }
|
public override void JustReachedHome() { _JustReachedHome(); }
|
||||||
|
|
||||||
public override bool CanAIAttack(Unit victim) { return CheckBoundary(victim); }
|
public override bool CanAIAttack(Unit victim) { return IsInBoundary(victim); }
|
||||||
|
|
||||||
public void _JustReachedHome() { me.SetActive(false); }
|
public void _JustReachedHome() { me.SetActive(false); }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user