Select Git revision
settings_game_cubit.dart
-
Benoît Harrault authoredBenoît Harrault authored
game_board.dart 6.18 KiB
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/models/game/game.dart';
import 'package:awale/ui/widgets/game/game_house.dart';
import 'package:awale/ui/widgets/game/game_player.dart';
import 'package:awale/ui/widgets/game/game_score.dart';
class GameBoardWidget extends StatelessWidget {
const GameBoardWidget({super.key});
@override
Widget build(BuildContext context) {
return Center(
child: BlocBuilder<GameCubit, GameState>(
builder: (BuildContext context, GameState gameState) {
final Game currentGame = gameState.currentGame;
final Color borderColor = Theme.of(context).colorScheme.onSurface;
var screenSize = MediaQuery.of(context).size;
const totalMargins = 9 * 4;
final availableHeight = screenSize.height - totalMargins;
final double houseHeight = availableHeight / 10;
final double houseWidth = houseHeight;
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
currentGame.isFinished
? const SizedBox.shrink()
: SizedBox(
width: houseWidth,
height: houseHeight,
child: const GamePlayerWidget(playerIndex: 0),
),
Container(
margin: const EdgeInsets.all(2),
padding: const EdgeInsets.all(2),
decoration: BoxDecoration(
color: borderColor,
borderRadius: BorderRadius.circular(40),
border: Border.all(
color: borderColor,
width: 6,
),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 2 * houseWidth,
height: houseHeight,
child: const GameScoreWidget(playerIndex: 1),
),
Table(
defaultColumnWidth: const IntrinsicColumnWidth(),
children: [
TableRow(children: [
SizedBox(
width: houseWidth,
height: houseHeight,
child: const GameHouseWidget(cellIndex: 0),
),
SizedBox(
width: houseWidth,