@@ -20,18 +20,27 @@ public partial class GamePageViewModel(IGamesClient gamesClient, IInfoBarService
2020 [ NotifyCanExecuteChangedFor ( nameof ( StartGameCommand ) ) ]
2121 private string _username = string . Empty ;
2222
23+ [ ObservableProperty ]
24+ private GameType _selectedGameType = GameType . Game6x4 ;
25+
26+ public IEnumerable < GameType > GameTypes { get ; } = [
27+ GameType . Game6x4 ,
28+ GameType . Game6x4Mini ,
29+ GameType . Game8x5 ,
30+ GameType . Game5x5x4
31+ ] ;
32+
2333 private bool CanStartGame ( ) => Username is not null && Username . Length > 2 ;
2434
2535 [ RelayCommand ( CanExecute = nameof ( CanStartGame ) ) ]
2636 private async Task StartGameAsync ( CancellationToken cancellationToken )
2737 {
2838 IsLoading = true ;
29- var usedGameMode = GameType . Game6x4 ;
3039
3140 try
3241 {
33- var response = await gamesClient . StartGameAsync ( usedGameMode , Username ) ;
34- Game = new Game ( response . Id , usedGameMode , Username , DateTime . Now , response . NumberCodes , response . MaxMoves , response . FieldValues ) ;
42+ var response = await gamesClient . StartGameAsync ( SelectedGameType , Username ) ;
43+ Game = new Game ( response . Id , SelectedGameType , Username , DateTime . Now , response . NumberCodes , response . MaxMoves , response . FieldValues ) ;
3544 }
3645 catch ( InvalidOperationException )
3746 {
@@ -83,7 +92,7 @@ private async Task MakeMoveAsync(CancellationToken cancellationToken)
8392 IsLoading = true ;
8493 try
8594 {
86- var response = await gamesClient . SetMoveAsync ( Game . Id , Game . PlayerName , GameType . Game6x4 , Game . Moves . Count + 1 , serializedFields ) ;
95+ var response = await gamesClient . SetMoveAsync ( Game . Id , Game . PlayerName , Game . GameType , Game . Moves . Count + 1 , serializedFields ) ;
8796
8897 // It is necessary to copy the fields to avoid every move having the same reference to the same fields
8998 var copiedFields = SelectedFields . Select ( f => new Field ( f . Color , f . Shape ) ) . ToArray ( ) ;
0 commit comments