Files
MauMau-Server/Mau/GameState.cs
DTieman 3b765841b7
All checks were successful
Build Mau & Deploy Mau / build (push) Successful in 1m6s
Build Mau & Deploy Mau / deploy (push) Has been skipped
Build Mau & Deploy Mau / build (pull_request) Successful in 1m3s
Build Mau & Deploy Mau / deploy (pull_request) Has been skipped
Better messaging and better rule implementation
2024-05-19 23:49:25 +02:00

45 lines
1.3 KiB
C#

namespace MauMau_Server.Mau;
public class GameState
{
public PlayerDTO Me { get; set; }
public string MyState { get; set; }
public List<string> Hand { get; set; } = new();
public string CurrentCard { get; set; }
public string? NextAllowedCardType { get; set; }
public PlayerDTO CurrentPlayer { get; set; }
public List<PlayerDTO> Players { get; set; } = new();
public GameState(Player me, Card currentCard, CardType? nextAllowedCardType, Player currentPlayer, List<Player> others)
{
Me = new PlayerDTO(me);
MyState = me.State.ToString();
foreach (var card in me.Hand)
{
Hand.Add(card.ToString());
}
foreach (var player in others)
{
Players.Add(new PlayerDTO(player));
}
NextAllowedCardType = nextAllowedCardType?.ToString();
CurrentCard = currentCard.ToString();
CurrentPlayer = new PlayerDTO(currentPlayer);
}
}
public class PlayerDTO
{
public string Name { get; set; }
public string Id { get; set; }
public int CardsLeft { get; set; }
public PlayerDTO(Player player)
{
Name = player.Connection.Name;
Id = player.Connection.Id.ToString();
CardsLeft = player.Hand.Count;
}
}