37 lines
864 B
C#
37 lines
864 B
C#
using MauMau_Server.Websockets;
|
|
|
|
namespace MauMau_Server.Mau;
|
|
|
|
public class Player
|
|
{
|
|
public ConnectionInstance Connection { get; set; }
|
|
public PlayerState State { get; set; } = PlayerState.WAIT;
|
|
public List<Card> Hand { get; set; } = new();
|
|
|
|
public Player(ConnectionInstance connection)
|
|
{
|
|
Connection = connection;
|
|
}
|
|
|
|
public void GiveCard(Card card)
|
|
{
|
|
Hand.Add(card);
|
|
}
|
|
|
|
public void GiveCards(IEnumerable<Card> cards)
|
|
{
|
|
Hand.AddRange(cards);
|
|
}
|
|
|
|
public Card? TakeCardFromHand(Card card)
|
|
{
|
|
return Hand.FirstOrDefault(handCard => handCard.IsSameCard(card));
|
|
}
|
|
|
|
public bool IsMe(Guid playerId) => Connection.Id == playerId;
|
|
|
|
public bool CanPlayCard(Card currentCard)
|
|
{
|
|
return Hand.Any(card => card.CanBePlayedOn(currentCard));
|
|
}
|
|
} |