Ejemplo n.º 1
0
        private HandChangedEvent InitializeHand(Player player)
        {
            player.IsTurn = true;
            var initialHandCardCount = GetInitialHandCardCount(player);
            var shuffledCards        = GetShuffledDeckCards(player);

            var handCards = shuffledCards.Take(initialHandCardCount).ToList();

            shuffledCards.RemoveRange(0, initialHandCardCount);
            foreach (var handCard in handCards)
            {
                player.HandCards.Add(handCard);
            }

            player.DeckCards.Clear();
            foreach (var card in shuffledCards)
            {
                player.DeckCards.Add(card);
            }

            Substates.Add(new RedrawPlayerSubstate
            {
                UserId          = player.User.Id,
                RedrawCardCount = Constants.InitialRedrawCount
            });

            return(new HandChangedEvent(player.User.Id)
            {
                HandCards = handCards.Select(c => c.Card.Id).ToList()
            });
        }
Ejemplo n.º 2
0
        public void Add(JsStatement statement)
        {
            if (Substates.Any())
            {
                throw new Exception("Cannot add a statement to a state that contains substates");
            }

            InternalAdd(statement);
        }
Ejemplo n.º 3
0
 public override IEnumerable <Event> Initialize(Game game)
 {
     foreach (var player in game.Players)
     {
         bool canPickStartingPlayer = player.Deck.Faction == GwintFaction.Scoiatael;
         player.IsTurn = canPickStartingPlayer;
         Substates.Add(new PickStartingPlayerSubstate
         {
             UserId = player.User.Id,
             CanPickStartingPlayer = canPickStartingPlayer
         });
     }
     yield break;
 }