示例#1
0
        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);
            }
        }
示例#2
0
        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);
                        }
                    }
                }
            }));
        }
示例#3
0
        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);
                    }
                }
            }));
        }