You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.0 KiB
76 lines
2.0 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using OrderStacks.model.card;
|
|
using OrderStacks.model.@event;
|
|
|
|
namespace OrderStacks.model
|
|
{
|
|
public class Player
|
|
{
|
|
|
|
public string Pseudo { get; set; }
|
|
private List<Card> cardList = new List<Card>();
|
|
public event EventHandler<HandCardChangedEventArgs> HandCardChanged;
|
|
|
|
/**
|
|
*<param name="pseudo">Pseudo du joueur</param>
|
|
*
|
|
* Constructeur
|
|
*/
|
|
public Player(string pseudo)
|
|
{
|
|
Pseudo = pseudo;
|
|
}
|
|
|
|
/**
|
|
* <param name="card">Carte pioché</param>
|
|
*
|
|
* Fonction permettant d'ajouter une carte pioché à la main de l'utilisateur
|
|
*/
|
|
public void pioche(Card card)
|
|
{
|
|
cardList.Add(card);
|
|
int position = cardList.IndexOf(card);
|
|
OnCardDrawable(new HandCardChangedEventArgs(card, position));
|
|
}
|
|
|
|
/**
|
|
* <param name="card">Carte joué</param>
|
|
*
|
|
* Fonction permettant de jouer une carte de la main du joueur
|
|
*/
|
|
public void joue(Card card)
|
|
{
|
|
int position = cardList.IndexOf(card);
|
|
cardList.Remove(card);
|
|
OnCardDrawable(new HandCardChangedEventArgs(null, position));
|
|
}
|
|
|
|
//public IReadOnlyList<Card> getCardList()
|
|
//{
|
|
// return cardList.AsReadOnly();
|
|
//}
|
|
|
|
/**
|
|
* Fonction permettant de retourner la liste de carte du joueur
|
|
*
|
|
* <returns>Liste de cartes</returns>
|
|
*/
|
|
public List<Card> getCardList()
|
|
{
|
|
return cardList;
|
|
}
|
|
|
|
/**
|
|
* <param name="args">Argument de l'événement</param>
|
|
*
|
|
* Evénement permettant de notifier que la main a changé
|
|
*/
|
|
protected internal void OnCardDrawable(HandCardChangedEventArgs args)
|
|
{
|
|
HandCardChanged?.Invoke(this, args);
|
|
}
|
|
|
|
}
|
|
}
|