- Chat message cleaning to prevent HTML injection - Player hand size to game state - Deck automatically creates sets when it doesnt have any cards left
44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
namespace MauMau_Server.Mau;
|
|
|
|
public class GameState
|
|
{
|
|
public PlayerDTO Me { get; set; }
|
|
public string CurrentState { get; set; }
|
|
public List<string> Hand { get; set; } = new();
|
|
public string CurrentCard { get; set; }
|
|
public PlayerDTO CurrentPlayer { get; set; }
|
|
public List<PlayerDTO> Players { get; set; } = new();
|
|
|
|
public GameState(Game game, string playerId)
|
|
{
|
|
var p = game.GetPlayer(playerId);
|
|
Me = new PlayerDTO(game.GetPlayer(playerId));
|
|
CurrentState = p.State.ToString();
|
|
foreach (var card in p.Hand)
|
|
{
|
|
Hand.Add(card.ToString());
|
|
}
|
|
|
|
foreach (var player in game.Players)
|
|
{
|
|
Players.Add(new PlayerDTO(player));
|
|
}
|
|
|
|
CurrentCard = game.CurrentCard.ToString();
|
|
CurrentPlayer = new PlayerDTO(game.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.ConnectionId;
|
|
CardsLeft = player.Hand.Count;
|
|
}
|
|
} |