public void OnGameStart() { //Tworzymy i losujemy karty InitializeCards(); //Rozdajemy po 4 karty dla uczestników gry foreach (PlayerModel player in Game.GameTableModel.PlayerHavingPlayStatus()) { //Dajemy dla gracza dwie karty List <CardModel> playerCards = new List <CardModel>(); playerCards.Add(Helper.Pop <CardModel>(CardList)); playerCards.Add(Helper.Pop <CardModel>(CardList)); playerCards.Add(Helper.Pop <CardModel>(CardList)); playerCards.Add(Helper.Pop <CardModel>(CardList)); //Zapisujemy w pamieci karty gracza player.Cards = playerCards; //Dodajemy akcję doręczenia kart dla użytkownika, która jest //jednoznaczna z wysłaniem informacji do wszystkich graczy //o otrzymaniu przez gracza jego kart CardBacksideAction cardAction = new CardBacksideAction() { Count = 4, CreatedAt = DateTime.Now, Player = player }; Game.GameTableModel.ActionHistory.Add(cardAction); Game.SendPlayerCards(player); } }
void Instance_OnTableHitoryEvent(TableModel table, ObservableCollection <BaseAction> tableHistory) { Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { if (this.gameTable.GameTable.ID != table.ID || this.player == null) { return; } //Pobieramy informacje ile gracz kart ma na ręce foreach (IAction action in tableHistory) { if (action is CardBacksideAction) { //Otrzymanie kart (tyły kart) CardBacksideAction actionEntry = (CardBacksideAction)action; if (this.player.User.ID == actionEntry.Player.User.ID) { ShowEmptyCards(actionEntry.Count); } } else if (action is CardHideupAction) { CardHideupAction actionEntry = (CardHideupAction)action; if (this.player.User.ID == actionEntry.Player.User.ID) { HideCards(); } } else if (action is CardShowupAction) { CardShowupAction actionEntry = (CardShowupAction)action; if (this.player.User.ID == actionEntry.Player.User.ID) { ShowCards(actionEntry.Cards); } } } })); }
void Instance_OnPlayerActionTriggerEvent(TableModel table, BaseAction action) { Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { if (this.gameTable.GameTable.ID != table.ID || this.player == null) { return; } if (action is BetAction) { BetAction actionEntry = (BetAction)action; if (this.player.User.ID == actionEntry.Player.User.ID) { ParserPlayer(actionEntry.Player); CloseTimer(); //Jeśli fold, ukrywamy karty if (actionEntry.Action == Enums.ActionPokerType.Fold) { HideCards(); } } } else if (action is CardBacksideAction) { //Otrzymanie kart (tyły kart) CardBacksideAction actionEntry = (CardBacksideAction)action; if (this.player.User.ID == actionEntry.Player.User.ID) { ParserPlayer(actionEntry.Player); ShowEmptyCards(actionEntry.Count); } } else if (action is CardHideupAction) { CardHideupAction actionEntry = (CardHideupAction)action; if (this.player.User.ID == actionEntry.Player.User.ID) { ParserPlayer(actionEntry.Player); HideCards(); } } else if (action is CardShowupAction) { CardShowupAction actionEntry = (CardShowupAction)action; if (this.player.User.ID == actionEntry.Player.User.ID) { ParserPlayer(actionEntry.Player); ShowCards(actionEntry.Cards); } } else if (action is TablePotAction) { TablePotAction actionEntry = (TablePotAction)action; if (this.player.User.ID == actionEntry.Player.User.ID) { ParserPlayer(actionEntry.Player); } } })); }