import 'package:mchess/chess_bloc/chess_position.dart'; import 'package:mchess/utils/chess_utils.dart'; abstract class ChessEvent {} class ReceivedMove extends ChessEvent { final ChessCoordinate startSquare; final ChessCoordinate endSquare; final ChessPosition position; final ChessCoordinate squareInCheck; ReceivedMove({ required this.startSquare, required this.endSquare, required this.position, required this.squareInCheck, }); } class OwnPieceMoved extends ChessEvent { final ChessCoordinate startSquare; final ChessCoordinate endSquare; final ChessPiece piece; OwnPieceMoved( {required this.startSquare, required this.endSquare, required this.piece}); } class OwnPromotionPlayed extends ChessEvent { final ChessPieceClass pieceClass; final ChessMove move; OwnPromotionPlayed({required this.pieceClass, required this.move}); } class InitBoard extends ChessEvent { InitBoard(); } class ColorDetermined extends ChessEvent { final ChessColor myColor; ColorDetermined({required this.myColor}); } class InvalidMovePlayed extends ChessEvent { final ChessMove move; final ChessCoordinate squareInCheck; InvalidMovePlayed({ required this.move, required this.squareInCheck, }); }