public override ReturnStatus Tick() { if (board.ScannedRobot.Distance > 200 && !isMoving) { board.SetRobotColor(System.Drawing.Color.Black); isMoving = true; //Random Move offset Random r = new Random(); int randomRotation = r.Next(-10, 10); board.Robot.TurnRight(board.ScannedRobot.Bearing + randomRotation); board.Robot.Ahead(board.ScannedRobot.Distance / 2); return(ReturnStatus.Running); } else { isMoving = false; if (board.ScannedRobot.Distance > 100) { board.Robot.TurnRight(board.ScannedRobot.Bearing); board.Robot.Ahead(board.ScannedRobot.Distance); return(ReturnStatus.Failure); } else { board.Robot.Scan(); return(ReturnStatus.Success); } } }
public override ReturnStatus Tick() { if (board.ScannedRobot == null && board.ScannedRobot.Distance > 100) { return(ReturnStatus.Failure); } if (Math.Abs(board.GunBearingAngle()) > 5 && !isRotating) { board.SetRobotColor(System.Drawing.Color.DarkRed); isRotating = true; board.Robot.TurnRadarRight(board.RadarBearingAngle()); board.Robot.TurnRight(board.ScannedRobot.Bearing); return(ReturnStatus.Running); } else { isRotating = false; return(ReturnStatus.Success); } }