private void EventSource_DealingStarted(object sender, GameLogic.PlayerPairEventArgs e) { var ruleSettings = this.currentStateStack.CreationInfo.RuleSettings; this.cardsPerPlayer = new List <IEnumerable <Common.Card> >(); // four players, no sevens: 40 cards, 4 dabb, 9 per player // three players, no sevens: 40 cards, 4 dabb, 12 per player // four players, sevens: 48 cards, 4 dabb, 11 per player // three players, sevens: 48 cards, 6 dabb, 14 per player var numberOfPlayers = ruleSettings.GameType == GameLogic.GameType.ThreePlayerGame ? 3 : 4; var amountOfCards = ruleSettings.SevensAreIncluded ? 48 : 40; var numberOfCardsInDabb = ruleSettings.GameType == GameLogic.GameType.ThreePlayerGame && ruleSettings.SevensAreIncluded ? 6 : 4; var numberOfCardsPerPlayer = (amountOfCards - numberOfCardsInDabb) / numberOfPlayers; var numberOfCardsPerSuit = amountOfCards / 8; // four suits, two decks // TODO: generate and remember cards. Mind the possible inclusion of sevens and the number of players // For now, cards will be distributed according to the enum order var counter = 0; for (int player = 0; player < numberOfPlayers; player++) { var playerCards = new List <Common.Card>(); for (int cardIndex = 0; cardIndex < numberOfCardsPerPlayer; cardIndex++) { playerCards.Add(GetCard(amountOfCards, numberOfCardsPerSuit, counter)); counter++; } this.cardsPerPlayer.Add(playerCards); } for (; counter < amountOfCards; counter++) { this.cardsInDabb.Add(GetCard(amountOfCards, numberOfCardsPerSuit, counter)); } this.userInterface.PlayDealingAnimation(this.currentDealer, this.cardsPerPlayer, this.cardsInDabb); this.userInterface.UncoverCardsForUser(this.cardsPerPlayer.First()); this.stateBridge.TriggerSink.SendTrigger(Common.GameTrigger.DealingFinished); }
private void EventSource_SwitchingCurrentBidPlayerStarted(object sender, GameLogic.PlayerPairEventArgs e) { // Nothing to do here at the moment this.stateBridge.TriggerSink.SendTrigger(Common.GameTrigger.PlayerSwitched); }