2020-06-29 01:42:44 +10:00
|
|
|
using Robust.Shared.Map;
|
|
|
|
|
|
|
|
|
|
namespace Content.Server.GameObjects.EntitySystems.AI.Steering
|
|
|
|
|
{
|
|
|
|
|
public interface IAiSteeringRequest
|
|
|
|
|
{
|
|
|
|
|
SteeringStatus Status { get; set; }
|
|
|
|
|
MapCoordinates TargetMap { get; }
|
2020-09-06 16:11:53 +02:00
|
|
|
EntityCoordinates TargetGrid { get; }
|
2020-06-29 01:42:44 +10:00
|
|
|
/// <summary>
|
2020-08-22 20:03:24 +10:00
|
|
|
/// How close we have to get before we've arrived
|
2020-06-29 01:42:44 +10:00
|
|
|
/// </summary>
|
|
|
|
|
float ArrivalDistance { get; }
|
2020-09-06 16:11:53 +02:00
|
|
|
|
2020-06-29 01:42:44 +10:00
|
|
|
/// <summary>
|
2020-08-22 20:03:24 +10:00
|
|
|
/// How close the pathfinder needs to get. Typically you want this set lower than ArrivalDistance
|
2020-06-29 01:42:44 +10:00
|
|
|
/// </summary>
|
|
|
|
|
float PathfindingProximity { get; }
|
2020-09-06 16:11:53 +02:00
|
|
|
|
2020-08-22 20:03:24 +10:00
|
|
|
/// <summary>
|
|
|
|
|
/// If we need LOS on the entity first before interaction
|
|
|
|
|
/// </summary>
|
|
|
|
|
bool RequiresInRangeUnobstructed { get; }
|
2020-09-06 16:11:53 +02:00
|
|
|
|
2020-08-22 20:03:24 +10:00
|
|
|
/// <summary>
|
|
|
|
|
/// To avoid spamming InRangeUnobstructed we'll apply a cd to it.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float TimeUntilInteractionCheck { get; set; }
|
2020-06-29 01:42:44 +10:00
|
|
|
}
|
2020-09-06 16:11:53 +02:00
|
|
|
}
|