예제 #1
0
        public GameState CreateGame()
        {
            // Create Deck
            var deck       = _cardService.CreateDeck(_config.SuitCount, _config.RankCount);
            var siegeCards = _cardService.Shuffle(deck);
            // Draw Cards/Hands
            var attackerCards = new List <Card>();
            var defenderCards = new List <Card>();

            for (var i = 0; i < _config.HandSize; i++)
            {
                attackerCards.Add(_cardService.DrawCard(siegeCards));
                defenderCards.Add(_cardService.DrawCard(siegeCards));
            }
            // Setup State
            var state = new GameState()
            {
                IsAttackersTurn   = true,
                EnablePreparation = true,
                OilCount          = _config.OilCount,
                NewCards          = 0,
                Sections          = CreateSections(),
                SiegeCards        = siegeCards,
                AttackerCards     = attackerCards,
                DefenderCards     = defenderCards,
                DiscardCards      = new List <Card>(),
                LastEvent         = GameEvent.Start,
                LastSection       = -1,
            };

            return(state);
        }