Пример #1
0
 public GameViewController(string gameId)
     : base("GameViewController", null)
 {
     Title = NSBundle.MainBundle.LocalizedString ("Name", "Name");
     restFacilitator = new RestFacilitator();
     restService = new RestService(restFacilitator, baseUri);
     _gameId = gameId;
     _game = null;
 }
Пример #2
0
        void UpdateView(Game game)
        {
            Title = game.Name;
            _game = game;
            _whiteCards.Clear ();

            if (game.IsStarted) {
                BlackCard.Text = game.CurrentBlackCard;
            } else {
                BlackCard.Text = "waiting on round to start";
                return;
            }

            WhiteCardTable.AllowsSelection = false;
            // Web games Section
            var tGroup = new TableItemGroup{ Name = "Select a card to play"};

            TableItemGroup status = null;
            if (game.Players.Any (p => p.Id == Application.PlayerId)) {

                var player = game.Players.First (p => p.Id == Application.PlayerId);

                if (string.IsNullOrWhiteSpace (player.SelectedWhiteCardId)) {
                    tGroup = new TableItemGroup{ Name = "Select a card to play"};
                    Title = tGroup.Name;
                    foreach (var whiteCard in player.Cards) {
                        tGroup.Items.Add (whiteCard);
                        tGroup.ItemIds.Add (whiteCard);

                        WhiteCardTable.AllowsSelection = true;
                    }
                } else {
                    tGroup = new TableItemGroup{ Name = "You're selection:"};
                    tGroup.Items.Add (player.SelectedWhiteCardId);
                    status = new TableItemGroup{ Name = "Waiting for the Czar to pick winner..."};
                }

                PointsLabel.Text = string.Format ("{0}", player.AwesomePoints);

                if (!string.IsNullOrWhiteSpace (game.WinningCardId)) {

                    if (game.WinningCardId == player.SelectedWhiteCardId) {
                        status = new TableItemGroup{ Name = "You're the winner!"};
                    } else {
                        status = new TableItemGroup{ Name = "Winner Selected"};
                        status.Items.Add (game.WinningCardId);
                    }

                    tGroup = new TableItemGroup{ Name = "Cards Played:"};
                    foreach (var oPlayer in game.Players) {
                        var card = oPlayer.SelectedWhiteCardId;
                        if (string.IsNullOrWhiteSpace (card))
                            continue;
                        tGroup.Items.Add (card);
                    }
                }

                if (game.IsReadyForReview && !player.IsReady) {
                    if(status == null)
                    {
                        status = new TableItemGroup{ Name = "You're the Czar!"};
                    }
                    shouldPool = false;
                    var alert = new UIAlertView(status.Name, "Next round will start when everyone is ready", null, "OK", null);
                    alert.Clicked += (sender, e) => {
                        ReadyForNextRound();
                    };
                    alert.Show();
                }
                _isCzar = player.IsCzar;

                if(player.IsCzar){
                    status = null;
                    Title = "You're the Czar!";
                    tGroup = new TableItemGroup{ Name = "Choices so far:"};
                    foreach (var oPlayer in game.Players) {
                        var card = oPlayer.SelectedWhiteCardId;
                        if (string.IsNullOrWhiteSpace (card))
                            continue;
                        tGroup.Items.Add (card);
                        tGroup.ItemIds.Add (card);
                    }
                    if(game.IsReadyForScoring)
                    {
                        WhiteCardTable.AllowsSelection = true;
                        Title = tGroup.Name = "Select a winner";
                    }

                    if(game.IsReadyForReview){
                        Title = "Round Ended";
                        tGroup = new TableItemGroup{ Name = "Next round will start when everyone is ready"};
                        status = null;
                    }
                }
            }
            if (status != null)
                _whiteCards.Add (status);
            _whiteCards.Add (tGroup);
            WhiteCardTable.ReloadData ();
        }