PieceType.fromJson constructor

PieceType.fromJson(
  1. Map<String, dynamic> json, {
  2. List<BishopTypeAdapter> adapters = const [],
})

Implementation

factory PieceType.fromJson(
  Map<String, dynamic> json, {
  List<BishopTypeAdapter> adapters = const [],
}) {
  if (json.containsKey('betza')) {
    return PieceType.fromBetza(
      json['betza'],
      royal: json['royal'] ?? false,
      promoOptions: json.containsKey('promoOptions')
          ? PiecePromoOptions.fromJson(json['promoOptions'])
          : PiecePromoOptions.promoPiece,
      enPassantable: json['enPassantable'] ?? false,
      noSanSymbol: json['noSanSymbol'] ?? false,
      value: json['value'] ?? Bishop.defaultPieceValue,
      regionEffects: (json['regionEffects'] as List<dynamic>?)
              ?.map((e) => RegionEffect.fromJson(e))
              .toList() ??
          [],
      actions: json.containsKey('actions')
          ? BishopSerialisation.buildMany<Action>(
              json['actions'],
              adapters: adapters,
            )
          : const [],
    );
  }
  throw UnimplementedError('Non-betza pieces in json are not supported yet');
}