public void Work() { var angleToTarget = Me.CalculateAngleTo(Me.Target); var oppositeAngle = angleToTarget;// SpaceExtensions.GetOppositeAngle(angleToTarget); var newLocation = SpaceExtensions.MoveTowards(Me.TopLeft(), oppositeAngle, 1); var overlapCount = SpaceTime.CurrentSpaceTime.Elements.Where(e => Rectangular.Create(newLocation.Left, newLocation.Top, 1, 1).OverlapPercentage(e) > 0).Count(); if (overlapCount == 0) { Me.MoveTo(newLocation.Left, newLocation.Top); } }