public bool IsPlayerNearby(TriggerProfile control, bool playerOutsideDistance = false) { IMyPlayer player = null; var remotePosition = Vector3D.Transform(control.PlayerNearPositionOffset, RemoteControl.WorldMatrix); if (control.MinPlayerReputation != -1501 || control.MaxPlayerReputation != 1501) { player = TargetHelper.GetClosestPlayerWithReputation(remotePosition, _owner.FactionId, control); } else { player = TargetHelper.GetClosestPlayer(remotePosition); } if (player == null) { //Logger.MsgDebug(control.ProfileSubtypeId + ": No Eligible Player for PlayerNear Check", DebugTypeEnum.Trigger); return(false); } var playerDist = Vector3D.Distance(player.GetPosition(), remotePosition); if (playerOutsideDistance) { if (playerDist < control.TargetDistance) { return(false); } } else { if (playerDist > control.TargetDistance) { return(false); } } if (control.InsideAntenna == true) { var antenna = _behavior.Grid.GetAntennaWithHighestRange(control.InsideAntennaName); if (antenna != null) { playerDist = Vector3D.Distance(player.GetPosition(), antenna.GetPosition()); if (playerDist > antenna.Radius) { return(false); } } else { return(false); } } return(true); }