Variant constructor

const Variant({
  1. required String name,
  2. String description = '',
  3. BoardSize boardSize = BoardSize.standard,
  4. required Map<String, PieceType> pieceTypes,
  5. CastlingOptions castlingOptions = CastlingOptions.none,
  6. PromotionOptions promotionOptions = PromotionOptions.standard,
  7. MaterialConditions<String> materialConditions = MaterialConditions.none,
  8. GameEndConditionSet gameEndConditions = GameEndConditionSet.standard,
  9. OutputOptions outputOptions = OutputOptions.standard,
  10. String? startPosition,
  11. StartPositionBuilder? startPosBuilder,
  12. bool enPassant = false,
  13. FirstMoveOptions firstMoveOptions = FirstMoveOptions.standard,
  14. int? halfMoveDraw,
  15. int? repetitionDraw,
  16. bool forbidChecks = false,
  17. ForcedCapture? forcedCapture,
  18. HandOptions handOptions = HandOptions.disabled,
  19. GatingMode gatingMode = GatingMode.none,
  20. Map<String, int>? pieceValues,
  21. PassOptions passOptions = PassOptions.none,
  22. Map<String, BoardRegion> regions = const {},
  23. List<Action> actions = const [],
  24. StateTransformer? stateTransformer,
  25. List<MoveGenerator> moveGenerators = const [],
  26. List<MoveProcessor<Move>> moveProcessors = const [],
  27. List<MoveFormatter<Move>> moveFormatters = const [],
  28. List<BishopTypeAdapter> adapters = const [],
})

Implementation

const Variant({
  required this.name,
  this.description = '',
  this.boardSize = BoardSize.standard,
  required this.pieceTypes,
  this.castlingOptions = CastlingOptions.none,
  this.promotionOptions = PromotionOptions.standard,
  this.materialConditions = MaterialConditions.none,
  this.gameEndConditions = GameEndConditionSet.standard,
  this.outputOptions = OutputOptions.standard,
  this.startPosition,
  this.startPosBuilder,
  this.enPassant = false,
  this.firstMoveOptions = FirstMoveOptions.standard,
  this.halfMoveDraw,
  this.repetitionDraw,
  this.forbidChecks = false,
  this.forcedCapture,
  this.handOptions = HandOptions.disabled,
  this.gatingMode = GatingMode.none,
  this.pieceValues,
  this.passOptions = PassOptions.none,
  this.regions = const {},
  this.actions = const [],
  this.stateTransformer,
  this.moveGenerators = const [],
  this.moveProcessors = const [],
  this.moveFormatters = const [],
  this.adapters = const [],
}) : assert(
        startPosition != null || startPosBuilder != null,
        'Variant needs either a startPosition or startPosBuilder',
      );