EntityQuery<PhysicsComponent> bodyQuery,
EntityQuery<TransformComponent> xformQuery)
{
- var detectionRadius = MathF.Max(1.5f, agentRadius);
+ var detectionRadius = MathF.Max(1f, agentRadius);
foreach (var ent in _lookup.GetEntitiesInRange(uid, detectionRadius, LookupFlags.Static))
{
for (var i = 0; i < InterestDirections; i++)
{
var dot = Vector2.Dot(norm, Directions[i]);
- danger[i] = MathF.Max(dot * weight, danger[i]);
+ danger[i] = MathF.Max(dot * weight * 0.9f, danger[i]);
}
}
using Content.Shared.Movement.Systems;
using Content.Shared.NPC;
using Content.Shared.NPC.Events;
+using Content.Shared.Physics;
using Content.Shared.Weapons.Melee;
using Robust.Server.Player;
using Robust.Shared.Configuration;
// This should also implicitly solve tie situations.
// I think doing this after all the ops above is best?
// Originally I had it way above but sometimes mobs would overshoot their tile targets.
+
if (steering.NextSteer > curTime)
{
SetDirection(mover, steering, steering.LastSteerDirection, false);
// Short-circuit with no path.
var targetPoly = _pathfindingSystem.GetPoly(steering.Coordinates);
- if (targetPoly != null && steering.Coordinates.Position.Equals(Vector2.Zero) && _interaction.InRangeUnobstructed(steering.Owner, steering.Coordinates.EntityId))
+ // If this still causes issues future sloth adjust the collision mask.
+ if (targetPoly != null &&
+ steering.Coordinates.Position.Equals(Vector2.Zero) &&
+ _interaction.InRangeUnobstructed(steering.Owner, steering.Coordinates.EntityId, range: 30f))
{
steering.CurrentPath.Clear();
steering.CurrentPath.Enqueue(targetPoly);