示例#1
0
        public static void JoinToGame(this PlayerModel player, ITournamentGameModel gameModel)
        {
            var _gameModel = gameModel;

            //Tranzakcja dołączenia do gry
            player.User.GameJoinTransaction(gameModel.TournamentModel.EntryCurrency, gameModel.TournamentModel.EntryPayment);

            var tournamentPlayer = new TournamentPlayerModel()
            {
                PlaceID = 0,
                Player  = player,
            };

            //Dołączenie do listy graczy, jesli gracz nie mial rezerwacji i jest to mozliwe
            _gameModel.TournamentModel.PlayersList.Add(tournamentPlayer);
        }
示例#2
0
        /// <summary>
        /// Funkcja otryzmuje gracza ktorego musi umiescic na odpowiednim stole dziala tylko gdy gracz stolu NIE POSIADA
        /// </summary>
        public void TournamentPlacemenet(TournamentPlayerModel player)
        {
            //Sprawdzamy czy gracz jest umieszczony juz na stole, jesli jest to nie dodajemy go nigdzie
            if (GameList.Select(c => c.GameTableModel).Any(c => c.PlayersList.Any(p => p.User.ID == player.Player.User.ID)))
            {
                return;
            }

            //Sprawdzamy czy gdzies jest wolne miejsce, jesli nie tworzymy nowy stol
            var playerTable = GameList.Select(c => c.GameTableModel).FirstOrDefault(c => c.PlayersList.Count() < c.Seats);

            if (playerTable == null)
            {
                //Tworzy nowy stol na liscie stolow do gry
                playerTable = new TableModel()
                {
                    Blind       = 2m,
                    Currency    = Enums.CurrencyType.VIRTUAL,
                    Game        = Enums.PokerGameType.Holdem,
                    Limit       = Enums.LimitType.NoLimit,
                    Name        = GameModel.TournamentModel.Name + " #" + GameModel.TournamentModel.TableList.Count(),
                    Type        = Enums.TableType.Tournament,
                    Seats       = 9,
                    ActionTimer = 5000,
                };

                this.CreateGame(playerTable);

                GameModel.TournamentModel.TableList.Add(playerTable);
            }

            //Zajmujemy miejsce
            player.Player.Table = playerTable;
            player.Player.Seat  = playerTable.FreeSeats().First();
            playerTable.PlayersList.Add(player.Player);

            //Otwieramy nowe okno z gra
            if (player.Player.User.IsOnline())
            {
                player.Player.User.GetClient().OnTableOpenWindow(playerTable);
            }
        }