Example #1
0
        public RageCardGameMainView(IEventAggregator aggregator,
                                    TestOptions test,
                                    RageCardGameVMData model
                                    )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _deckGPile     = new BaseDeckXF <RageCardGameCardInformation, RageCardGameGraphicsCP, CardGraphicsXF>();
            _discardGPile  = new BasePileXF <RageCardGameCardInformation, RageCardGameGraphicsCP, CardGraphicsXF>();
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <RageCardGameCardInformation, RageCardGameGraphicsCP, CardGraphicsXF>();
            _trick1        = new SeveralPlayersTrickXF <EnumColor, RageCardGameCardInformation, RageCardGameGraphicsCP, CardGraphicsXF, RageCardGamePlayerItem>();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(RageCardGameMainViewModel.RestoreScreen));
            }

            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_deckGPile);
            otherStack.Children.Add(_discardGPile); // can reposition or not even have as well.
            mainStack.Children.Add(otherStack);
            PopulateScores(_score);
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(RageCardGameMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(RageCardGameMainViewModel.Status));
            firstInfo.AddRow("Trump", nameof(RageCardGameMainViewModel.TrumpSuit));
            firstInfo.AddRow("Lead", nameof(RageCardGameMainViewModel.Lead));
            mainStack.Children.Add(_trick1);
            mainStack.Children.Add(_playerHandWPF);
            mainStack.Children.Add(firstInfo.GetContent);
            mainStack.Children.Add(_score);

            _deckGPile.Margin = new Thickness(5, 5, 5, 5);

            _discardGPile.Margin = new Thickness(5, 5, 5, 5);

            if (restoreP != null)
            {
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }

            GamePackageViewModelBinder.ManuelElements.Clear();                   //often times i have to add manually.

            RageCardGameSaveInfo save = cons !.Resolve <RageCardGameSaveInfo>(); //usually needs this part for multiplayer games.

            _score !.LoadLists(save.PlayerList);
            _playerHandWPF !.LoadList(_model.PlayerHand1 !, "");        // i think

            _trick1 !.Init(_model.TrickArea1 !, _model.TrickArea1, ""); //just in case the load won't work properly this time on xamarin forms.

            Content = mainStack;
        }
Example #2
0
        public CribbagePatienceMainView(IEventAggregator aggregator)
        {
            _aggregator = aggregator;
            _aggregator.Subscribe(this);
            _deckGPile = new BaseDeckXF <CribbageCard, ts, DeckOfCardsXF <CribbageCard> >();
            StackLayout stack = new StackLayout();

            stack.Children.Add(_deckGPile);

            _deckGPile.Margin            = new Thickness(5, 5, 5, 5);
            _deckGPile.HorizontalOptions = LayoutOptions.Start;
            _deckGPile.VerticalOptions   = LayoutOptions.Start;

            _hand1Score = new ScoreHandCribUI();
            _hand2Score = new ScoreHandCribUI();
            _cribScore  = new ScoreHandCribUI();
            _score1     = new ScoreSummaryUI();
            _yourHand   = new BaseHandXF <CribbageCard, ts, DeckOfCardsXF <CribbageCard> >();
            _cribHand   = new BaseHandXF <CribbageCard, ts, DeckOfCardsXF <CribbageCard> >();
            SetMargins(_score1);
            SetMargins(_hand1Score);
            SetMargins(_hand2Score);
            SetMargins(_cribScore);
            SetMargins(_cribHand);
            SetMargins(_yourHand); //i think should be this too.
            Grid grid = new Grid();

            AddLeftOverRow(grid, 40);
            AddLeftOverRow(grid, 60);
            AddAutoRows(grid, 1);
            AddAutoColumns(grid, 1);
            AddLeftOverColumn(grid, 40);
            AddLeftOverColumn(grid, 40);
            AddControlToGrid(grid, stack, 2, 0);
            Grid.SetColumnSpan(stack, 3);
            stack.Orientation = StackOrientation.Horizontal;
            var cributton      = GetGamingButton("To Crib", nameof(CribbagePatienceMainViewModel.CribAsync));
            var continueButton = GetGamingButton("Continue", nameof(CribbagePatienceMainViewModel.Continue)); //to experiment

            stack.Children.Add(cributton);
            stack.Children.Add(continueButton);
            StackLayout otherStack = new StackLayout()
            {
                Orientation = StackOrientation.Horizontal
            };

            stack = new StackLayout();
            otherStack.Children.Add(_deckGPile);
            _startCard = new BasePileXF <CribbageCard, ts, DeckOfCardsXF <CribbageCard> >();
            otherStack.Children.Add(_startCard);
            stack.Children.Add(otherStack);
            stack.Children.Add(_yourHand);
            AddControlToGrid(grid, stack, 1, 0);
            AddControlToGrid(grid, _cribHand, 0, 0);
            AddControlToGrid(grid, _score1, 0, 2);
            _grid = grid;

            Content = grid;
        }
Example #3
0
        public GoFishMainView(IEventAggregator aggregator,
                              TestOptions test,
                              GoFishVMData model
                              )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _deckGPile    = new BaseDeckXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >();
            _discardGPile = new BasePileXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >();
            _score        = new ScoreBoardXF();
            _playerHandXF = new BaseHandXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(GoFishMainViewModel.RestoreScreen));
            }

            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_deckGPile);
            otherStack.Children.Add(_discardGPile); // can reposition or not even have as well.
            mainStack.Children.Add(otherStack);
            var endButton = GetGamingButton("End Turn", nameof(GoFishMainViewModel.EndTurnAsync));

            endButton.HorizontalOptions = LayoutOptions.Start;
            endButton.VerticalOptions   = LayoutOptions.Start;
            _score.AddColumn("Cards Left", true, nameof(GoFishPlayerItem.ObjectCount)); //very common.
            _score.AddColumn("Pairs", true, nameof(GoFishPlayerItem.Pairs));
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(GoFishMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(GoFishMainViewModel.Status));
            StackLayout finalStack = new StackLayout();

            otherStack.Children.Add(finalStack);
            finalStack.Children.Add(endButton);
            finalStack.Children.Add(firstInfo.GetContent);
            finalStack.Children.Add(_score);
            mainStack.Children.Add(_playerHandXF);
            ParentSingleUIContainer ask = new ParentSingleUIContainer(nameof(GoFishMainViewModel.AskScreen));

            mainStack.Children.Add(ask);

            _deckGPile.Margin = new Thickness(5, 5, 5, 5);

            _discardGPile.Margin = new Thickness(5, 5, 5, 5);

            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }
        public OpponentCardsView(OldMaidVMData model)
        {
            BaseHandXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> > hand = new BaseHandXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >();

            hand.Divider = 2;
            hand.LoadList(model.OpponentCards1, ts.TagUsed);
            Content = hand;
        }
        public RoundsCardGameMainView(IEventAggregator aggregator,
                                      TestOptions test,
                                      RoundsCardGameVMData model
                                      )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _deckGPile     = new BaseDeckXF <RoundsCardGameCardInformation, ts, DeckOfCardsXF <RoundsCardGameCardInformation> >();
            _discardGPile  = new BasePileXF <RoundsCardGameCardInformation, ts, DeckOfCardsXF <RoundsCardGameCardInformation> >();
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <RoundsCardGameCardInformation, ts, DeckOfCardsXF <RoundsCardGameCardInformation> >();
            _trick1        = new TwoPlayerTrickXF <EnumSuitList, RoundsCardGameCardInformation, ts, DeckOfCardsXF <RoundsCardGameCardInformation> >();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(RoundsCardGameMainViewModel.RestoreScreen));
            }

            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_deckGPile);
            otherStack.Children.Add(_discardGPile); // can reposition or not even have as well.
            mainStack.Children.Add(otherStack);
            _score.AddColumn("# In Hand", true, nameof(RoundsCardGamePlayerItem.ObjectCount));
            _score.AddColumn("Tricks Won", true, nameof(RoundsCardGamePlayerItem.TricksWon));
            _score.AddColumn("Rounds Won", true, nameof(RoundsCardGamePlayerItem.RoundsWon));
            _score.AddColumn("Points", true, nameof(RoundsCardGamePlayerItem.CurrentPoints));
            _score.AddColumn("Total Score", true, nameof(RoundsCardGamePlayerItem.TotalScore));
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(RoundsCardGameMainViewModel.NormalTurn));
            firstInfo.AddRow("Trump", nameof(RoundsCardGameMainViewModel.TrumpSuit));
            firstInfo.AddRow("Status", nameof(RoundsCardGameMainViewModel.Status));
            mainStack.Children.Add(_trick1);
            mainStack.Children.Add(_playerHandWPF);
            mainStack.Children.Add(firstInfo.GetContent);

            mainStack.Children.Add(_score);
            //this is only a starting point.

            _deckGPile.Margin = new Thickness(5, 5, 5, 5);

            _discardGPile.Margin = new Thickness(5, 5, 5, 5);

            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }
        public MailListView(PaydayVMData model)
        {
            BaseHandXF <MailCard, CardGraphicsCP, MailCardXF> hand = new BaseHandXF <MailCard, CardGraphicsCP, MailCardXF>();

            hand.HandType          = HandObservable <MailCard> .EnumHandList.Vertical;
            hand.HeightRequest     = 500;
            hand.HorizontalOptions = LayoutOptions.Start;
            hand.LoadList(model.CurrentMailList, "");
            Content = hand;
        }
        public CrazyEightsMainView(IEventAggregator aggregator,
                                   TestOptions test,
                                   CrazyEightsVMData model
                                   )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _deckGPile     = new BaseDeckXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >();
            _discardGPile  = new BasePileXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >();
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(CrazyEightsMainViewModel.RestoreScreen));
            }

            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_deckGPile);
            otherStack.Children.Add(_discardGPile);                                           // can reposition or not even have as well.
            mainStack.Children.Add(otherStack);
            _score.AddColumn("Cards Left", false, nameof(CrazyEightsPlayerItem.ObjectCount)); //very common.
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(CrazyEightsMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(CrazyEightsMainViewModel.Status));

            mainStack.Children.Add(_playerHandWPF);
            mainStack.Children.Add(firstInfo.GetContent);

            otherStack             = new StackLayout();
            otherStack.Orientation = StackOrientation.Horizontal;
            mainStack.Children.Add(otherStack);
            otherStack.Children.Add(_score);

            ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(CrazyEightsMainViewModel.SuitScreen));

            mainStack.Children.Add(parent);
            _deckGPile.Margin = new Thickness(5, 5, 5, 5);

            _discardGPile.Margin = new Thickness(5, 5, 5, 5);

            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }
Example #8
0
        public OldMaidMainView(IEventAggregator aggregator,
                               TestOptions test,
                               OldMaidVMData model
                               )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _discardGPile          = new BasePileXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >();
            _playerHandWPF         = new BaseHandXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >();
            _playerHandWPF.Divider = 2;
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(OldMaidMainViewModel.RestoreScreen));
            }

            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_discardGPile); // can reposition or not even have as well.
            mainStack.Children.Add(otherStack);
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(OldMaidMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(OldMaidMainViewModel.Status));

            var endButton = GetGamingButton("End Turn", nameof(OldMaidMainViewModel.EndTurnAsync));

            endButton.HorizontalOptions = LayoutOptions.Start;
            otherStack.Children.Add(endButton);

            ParentSingleUIContainer opponent = new ParentSingleUIContainer(nameof(OldMaidMainViewModel.OpponentScreen));

            mainStack.Children.Add(opponent);
            mainStack.Children.Add(_playerHandWPF);
            mainStack.Children.Add(otherStack);
            mainStack.Children.Add(firstInfo.GetContent);

            _discardGPile.Margin = new Thickness(5, 5, 5, 5);

            if (restoreP != null)
            {
                mainStack.Children.Add(restoreP);                        //default add to grid but does not have to.
            }
            GamePackageViewModelBinder.ManuelElements.Clear();           //often times i have to add manually.
            _playerHandWPF !.LoadList(_model.PlayerHand1 !, ts.TagUsed); // i think
            _discardGPile !.Init(_model.Pile1 !, ts.TagUsed);            // may have to be here (well see)
            _discardGPile.StartListeningDiscardPile();                   // its the main one.
            Content = mainStack;
        }
Example #9
0
        public Spades2PlayerMainView(IEventAggregator aggregator,
                                     TestOptions test,
                                     Spades2PlayerVMData model
                                     )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _score         = new ScoreBoardXF();
            _trick1        = new TwoPlayerTrickXF <EnumSuitList, Spades2PlayerCardInformation, ts, DeckOfCardsXF <Spades2PlayerCardInformation> >();
            _playerHandWPF = new BaseHandXF <Spades2PlayerCardInformation, ts, DeckOfCardsXF <Spades2PlayerCardInformation> >();

            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(Spades2PlayerMainViewModel.RestoreScreen));
            }

            ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(Spades2PlayerMainViewModel.BeginningScreen));

            mainStack.Children.Add(parent);

            _score.AddColumn("Cards", false, nameof(Spades2PlayerPlayerItem.ObjectCount)); //very common.
            _score.AddColumn("Bidded", false, nameof(Spades2PlayerPlayerItem.HowManyBids));
            _score.AddColumn("Won", false, nameof(Spades2PlayerPlayerItem.TricksWon));
            _score.AddColumn("Bags", false, nameof(Spades2PlayerPlayerItem.Bags));
            _score.AddColumn("C Score", false, nameof(Spades2PlayerPlayerItem.CurrentScore));
            _score.AddColumn("T Score", false, nameof(Spades2PlayerPlayerItem.TotalScore)); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();
            firstInfo.AddRow("Turn", nameof(Spades2PlayerMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(Spades2PlayerMainViewModel.Status));
            firstInfo.AddRow("Round", nameof(Spades2PlayerMainViewModel.RoundNumber));

            mainStack.Children.Add(_trick1);
            parent = new ParentSingleUIContainer(nameof(Spades2PlayerMainViewModel.BiddingScreen));
            mainStack.Children.Add(parent);
            mainStack.Children.Add(_playerHandWPF);
            StackLayout other = new StackLayout();

            other.Orientation = StackOrientation.Horizontal;
            mainStack.Children.Add(other);
            other.Children.Add(firstInfo.GetContent);
            other.Children.Add(_score);


            if (restoreP != null)
            {
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }
        public ItalianDominosMainView(IEventAggregator aggregator,
                                      TestOptions test,
                                      ItalianDominosVMData model
                                      )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);
            StackLayout mainStack = new StackLayout();

            ParentSingleUIContainer?restoreP = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(ItalianDominosMainViewModel.RestoreScreen));
            }


            _bone               = new BoneYardXF <SimpleDominoInfo, ts, DominosXF <SimpleDominoInfo>, DominosBasicShuffler <SimpleDominoInfo> >();
            _playerHandXF       = new BaseHandXF <SimpleDominoInfo, ts, DominosXF <SimpleDominoInfo> >();
            _score              = new ScoreBoardXF();
            _bone.HeightRequest = 130;
            _bone.WidthRequest  = 600;
            mainStack.Children.Add(_bone);
            mainStack.Children.Add(_playerHandXF);

            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(ItalianDominosMainViewModel.NormalTurn));
            firstInfo.AddRow("Up To", nameof(ItalianDominosMainViewModel.UpTo));
            firstInfo.AddRow("Next #", nameof(ItalianDominosMainViewModel.NextNumber));
            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            var thisBut = GetGamingButton("Play", nameof(ItalianDominosMainViewModel.PlayAsync));

            otherStack.Children.Add(thisBut);
            _score.AddColumn("Total Score", true, nameof(ItalianDominosPlayerItem.TotalScore), rightMargin: 10);
            _score.AddColumn("Dominos Left", true, nameof(ItalianDominosPlayerItem.ObjectCount), rightMargin: 10); // if not important, can just comment
            _score.AddColumn("Drew Yet", true, nameof(ItalianDominosPlayerItem.DrewYet), useTrueFalse: true);
            otherStack.Children.Add(firstInfo.GetContent);
            otherStack.Children.Add(_score);
            mainStack.Children.Add(otherStack); // this may be missing as well.

            if (restoreP != null)
            {
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }
        public CaliforniaJackMainView(IEventAggregator aggregator,
                                      TestOptions test,
                                      CaliforniaJackVMData model
                                      )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _deckGPile     = new BaseDeckXF <CaliforniaJackCardInformation, ts, DeckOfCardsXF <CaliforniaJackCardInformation> >();
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <CaliforniaJackCardInformation, ts, DeckOfCardsXF <CaliforniaJackCardInformation> >();
            _trick1        = new TwoPlayerTrickXF <EnumSuitList, CaliforniaJackCardInformation, ts, DeckOfCardsXF <CaliforniaJackCardInformation> >();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(CaliforniaJackMainViewModel.RestoreScreen));
            }

            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_deckGPile);
            mainStack.Children.Add(otherStack);
            _score.AddColumn("Cards Left", false, nameof(CaliforniaJackPlayerItem.ObjectCount)); //very common.
            _score.AddColumn("Tricks Won", true, nameof(CaliforniaJackPlayerItem.TricksWon), rightMargin: 10);
            _score.AddColumn("Points", true, nameof(CaliforniaJackPlayerItem.Points), rightMargin: 10);
            _score.AddColumn("Total Score", true, nameof(CaliforniaJackPlayerItem.TotalScore), rightMargin: 10);
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(CaliforniaJackMainViewModel.NormalTurn));
            firstInfo.AddRow("Trump", nameof(CaliforniaJackMainViewModel.TrumpSuit));
            firstInfo.AddRow("Status", nameof(CaliforniaJackMainViewModel.Status));
            mainStack.Children.Add(_trick1);
            mainStack.Children.Add(_playerHandWPF);
            mainStack.Children.Add(firstInfo.GetContent);
            mainStack.Children.Add(_score);

            _deckGPile.Margin = new Thickness(5, 5, 5, 5);


            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }
Example #12
0
        public void LoadControls(BaseHandXF <CardInfo, CardCP, CardXF> hand, Grid details, ClueBoardGameGameContainer gameContainer)
        {
            Grid thisGrid = new Grid();

            AddAutoRows(thisGrid, 3);
            AddAutoColumns(thisGrid, 2);
            thisGrid.RowSpacing    = 0;
            thisGrid.ColumnSpacing = 0;
            StackLayout firstRow  = new StackLayout();
            StackLayout secondRow = new StackLayout();
            StackLayout thirdRow  = new StackLayout();

            AddControlToGrid(thisGrid, firstRow, 0, 0);
            Grid.SetRowSpan(firstRow, 2);
            AddControlToGrid(thisGrid, secondRow, 0, 1);
            AddControlToGrid(thisGrid, thirdRow, 0, 2);
            StackLayout finalStack = new StackLayout();

            finalStack.Children.Add(hand);
            finalStack.Children.Add(details);
            AddControlToGrid(thisGrid, finalStack, 1, 1);
            Grid.SetColumnSpan(finalStack, 2);
            var    thisList = gameContainer.DetectiveList.Values.Where(items => items.Category == EnumCardType.IsRoom).ToCustomBasicList();
            Button thisBut;

            thisList.ForEach(thisItem =>
            {
                thisBut = GetButton(thisItem);
                firstRow.Children.Add(thisBut);
            });
            thisList = gameContainer.DetectiveList.Values.Where(items => items.Category == EnumCardType.IsCharacter).ToCustomBasicList();
            thisList.ForEach(thisItem =>
            {
                thisBut = GetButton(thisItem);
                secondRow.Children.Add(thisBut);
            });
            thisList = gameContainer.DetectiveList.Values.Where(items => items.Category == EnumCardType.IsWeapon).ToCustomBasicList();
            if (thisList.Count != 6)
            {
                throw new BasicBlankException("There has to be 6 weapons when loading controls");
            }

            thisList.ForEach(thisItem =>
            {
                thisBut = GetButton(thisItem);
                thirdRow.Children.Add(thisBut);
            });
            Content = thisGrid;
        }
        public ChooseColorView(IEventAggregator aggregator, UnoVMData model)
        {
            _aggregator = aggregator;
            _aggregator.Subscribe(this);
            StackLayout stack = new StackLayout();
            EnumPickerXF <CheckerChoiceCP <EnumColorTypes>,
                          CheckerChooserXF <EnumColorTypes>, EnumColorTypes> picker = new EnumPickerXF <CheckerChoiceCP <EnumColorTypes>, CheckerChooserXF <EnumColorTypes>, EnumColorTypes>();

            stack.Children.Add(picker);
            BaseHandXF <UnoCardInformation, UnoGraphicsCP, CardGraphicsXF> hand = new BaseHandXF <UnoCardInformation, UnoGraphicsCP, CardGraphicsXF>();

            stack.Children.Add(hand);
            hand.Margin = new Thickness(5);
            hand.LoadList(model.PlayerHand1, ts.TagUsed);
            picker.LoadLists(model.ColorPicker);
            Content = stack;
        }
        public void Init(TempSetsObservable <SU, CO, RU> thisMod, string tagUsed)
        {
            StackLayout thisStack = new StackLayout();

            thisStack.Orientation = StackOrientation.Horizontal;
            BaseHandXF <RU, GC, GW> thisHand;

            _handList = new CustomBasicList <BaseHandXF <RU, GC, GW> >();
            foreach (var thisSet in thisMod.SetList)
            {
                thisHand = new BaseHandXF <RU, GC, GW>();
                thisHand.ExtraControlSpace = 40;
                thisHand.HandType          = HandObservable <RU> .EnumHandList.Vertical;
                thisHand.Divider           = Divider;
                thisHand.Additionals       = Additionals;
                thisHand.LoadList(thisSet, tagUsed);
                _handList.Add(thisHand);
                thisHand.VerticalOptions = LayoutOptions.Fill; //try this way.
                thisStack.Children.Add(thisHand);
            }
            Content = thisStack;
        }
        public PickelCardGameMainView(IEventAggregator aggregator,
                                      TestOptions test,
                                      PickelCardGameVMData model
                                      )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <PickelCardGameCardInformation, ts, DeckOfCardsXF <PickelCardGameCardInformation> >();
            _trick1        = new TwoPlayerTrickXF <EnumSuitList, PickelCardGameCardInformation, ts, DeckOfCardsXF <PickelCardGameCardInformation> >();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(PickelCardGameMainViewModel.RestoreScreen));
            }
            PopulateScores(_score);
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(PickelCardGameMainViewModel.NormalTurn));
            firstInfo.AddRow("Trump", nameof(PickelCardGameMainViewModel.TrumpSuit));
            firstInfo.AddRow("Status", nameof(PickelCardGameMainViewModel.Status));
            mainStack.Children.Add(_trick1);
            mainStack.Children.Add(_playerHandWPF);
            mainStack.Children.Add(firstInfo.GetContent);

            mainStack.Children.Add(_score);
            //this is only a starting point.

            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }
        //private readonly ScoreBoardXF _score;
        public DominosMexicanTrainMainView(IEventAggregator aggregator,
                                           TestOptions test
                                           //DominosMexicanTrainVMData model
                                           )
        {
            _aggregator = aggregator;
            //_model = model;
            _aggregator.Subscribe(this);
            StackLayout mainStack = new StackLayout();

            ParentSingleUIContainer?restoreP = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(DominosMexicanTrainMainViewModel.RestoreScreen));
            }


            _bone          = new BoneYardXF <SimpleDominoInfo, ts, DominosXF <SimpleDominoInfo>, DominosBasicShuffler <SimpleDominoInfo> >();
            _playerHandWPF = new BaseHandXF <SimpleDominoInfo, ts, DominosXF <SimpleDominoInfo> >();
            //_score = new ScoreBoardXF();
            _bone.HeightRequest = 130;
            _bone.WidthRequest  = 600;
            mainStack.Children.Add(_bone);
            mainStack.Children.Add(_playerHandWPF);

            //anything else to add can be done as well.


            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }
Example #17
0
        public RageColorView(RageCardGameVMData model, RageCardGameGameContainer gameContainer)
        {
            StackLayout stack = new StackLayout();
            BaseHandXF <RageCardGameCardInformation, RageCardGameGraphicsCP, CardGraphicsXF> hand = new BaseHandXF <RageCardGameCardInformation, RageCardGameGraphicsCP, CardGraphicsXF>();
            ScoreBoardXF score = new ScoreBoardXF();

            RageCardGameMainView.PopulateScores(score);
            SimpleLabelGridXF details = new SimpleLabelGridXF();

            details.AddRow("Trump", nameof(RageColorViewModel.TrumpSuit));
            details.AddRow("Lead", nameof(RageColorViewModel.Lead));
            EnumPickerXF <CheckerChoiceCP <EnumColor>, CheckerChooserXF <EnumColor>, EnumColor> piece = new EnumPickerXF <CheckerChoiceCP <EnumColor>, CheckerChooserXF <EnumColor>, EnumColor>();

            stack.Children.Add(piece);
            stack.Children.Add(hand);
            stack.Children.Add(details.GetContent);
            stack.Children.Add(score);
            Content = stack;
            score !.LoadLists(gameContainer.SaveRoot.PlayerList);
            hand !.LoadList(model.PlayerHand1 !, "");
            piece.LoadLists(model.Color1);
        }
        public FiveCrownsMainView(IEventAggregator aggregator,
                                  TestOptions test,
                                  FiveCrownsVMData model
                                  )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _deckGPile     = new BaseDeckXF <FiveCrownsCardInformation, FiveCrownsGraphicsCP, CardGraphicsXF>();
            _discardGPile  = new BasePileXF <FiveCrownsCardInformation, FiveCrownsGraphicsCP, CardGraphicsXF>();
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <FiveCrownsCardInformation, FiveCrownsGraphicsCP, CardGraphicsXF>();
            _tempG         = new TempRummySetsXF <EnumSuitList, EnumColorList, FiveCrownsCardInformation, FiveCrownsGraphicsCP, CardGraphicsXF>();
            _mainG         = new MainRummySetsXF <EnumSuitList, EnumColorList, FiveCrownsCardInformation, FiveCrownsGraphicsCP, CardGraphicsXF, PhaseSet, SavedSet>();

            ParentSingleUIContainer?restoreP = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(FiveCrownsMainViewModel.RestoreScreen));
            }

            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_deckGPile);
            otherStack.Children.Add(_discardGPile);                                         // can reposition or not even have as well.
            _score.AddColumn("Cards Left", true, nameof(FiveCrownsPlayerItem.ObjectCount)); //very common.
            _score.AddColumn("Current Score", true, nameof(FiveCrownsPlayerItem.CurrentScore));
            _score.AddColumn("Total Score", true, nameof(FiveCrownsPlayerItem.TotalScore));
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(FiveCrownsMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(FiveCrownsMainViewModel.Status));
            firstInfo.AddRow("Up To", nameof(FiveCrownsMainViewModel.UpTo));


            Grid finalGrid = new Grid();

            AddAutoRows(finalGrid, 1);
            AddLeftOverRow(finalGrid, 1);
            Grid firstGrid = new Grid();

            AddLeftOverColumn(firstGrid, 40);
            AddAutoColumns(firstGrid, 1);
            AddLeftOverColumn(firstGrid, 15);
            AddLeftOverColumn(firstGrid, 30);

            var thisBut = GetSmallerButton("Lay Down", nameof(FiveCrownsMainViewModel.LayDownSetsAsync));


            AddControlToGrid(firstGrid, otherStack, 0, 1);
            StackLayout firstStack = new StackLayout();

            firstStack.Children.Add(_playerHandWPF);
            StackLayout secondStack = new StackLayout();

            secondStack.Orientation = StackOrientation.Horizontal;
            firstStack.Children.Add(secondStack);
            firstStack.Children.Add(thisBut);
            thisBut = GetSmallerButton("Back", nameof(FiveCrownsMainViewModel.Back));
            firstStack.Children.Add(thisBut);

            AddControlToGrid(firstGrid, firstStack, 0, 0);
            AddControlToGrid(firstGrid, _score, 0, 3);
            AddControlToGrid(finalGrid, firstGrid, 0, 0);
            AddControlToGrid(firstGrid, firstInfo.GetContent, 0, 2);
            _tempG.Divider = 1.1;
            StackLayout thirdStack = new StackLayout();

            thirdStack.Orientation = StackOrientation.Horizontal;
            thirdStack.Children.Add(_tempG);
            thirdStack.Children.Add(_mainG);
            AddControlToGrid(finalGrid, thirdStack, 1, 0); // i think
            _deckGPile.Margin = new Thickness(5, 5, 5, 5);

            _discardGPile.Margin = new Thickness(5, 5, 5, 5);

            if (restoreP != null)
            {
                otherStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = finalGrid;
        }
        public FlinchMainView(IEventAggregator aggregator,
                              TestOptions test,
                              FlinchVMData model
                              )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _deckGPile      = new BaseDeckXF <FlinchCardInformation, FlinchGraphicsCP, CardGraphicsXF>();
            _score          = new ScoreBoardXF();
            _playerHandWPF  = new BaseHandXF <FlinchCardInformation, FlinchGraphicsCP, CardGraphicsXF>();
            _publicGraphics = new PublicPilesXF();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(FlinchMainViewModel.RestoreScreen));
            }

            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_deckGPile);
            otherStack.Children.Add(_playerHandWPF);
            _score.AddColumn("In Stock", false, nameof(FlinchPlayerItem.InStock));
            int x;

            for (x = 1; x <= 5; x++) //has to change for flinch.
            {
                var thisStr = "Discard" + x;
                _score.AddColumn(thisStr, false, thisStr);
            }
            _score.AddColumn("Stock Left", false, nameof(FlinchPlayerItem.StockLeft));
            _score.AddColumn("Cards Left", false, nameof(FlinchPlayerItem.ObjectCount)); //very common.
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("RS Cards", nameof(FlinchMainViewModel.CardsToShuffle));
            firstInfo.AddRow("Turn", nameof(FlinchMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(FlinchMainViewModel.Status));


            Grid tempGrid = new Grid();

            AddLeftOverColumn(tempGrid, 60);
            AddLeftOverColumn(tempGrid, 40);
            mainStack.Children.Add(_publicGraphics);
            mainStack.Children.Add(tempGrid);

            StackLayout tempStack = new StackLayout();

            tempStack.Children.Add(otherStack);
            ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(FlinchMainViewModel.PlayerPilesScreen));

            tempStack.Children.Add(parent);
            AddControlToGrid(tempGrid, tempStack, 0, 0);


            Button endButton = GetGamingButton("End Turn", nameof(FlinchMainViewModel.EndTurnAsync));

            endButton.HorizontalOptions = LayoutOptions.Start;
            tempStack.Children.Add(endButton);
            tempStack = new StackLayout();
            AddControlToGrid(tempGrid, tempStack, 0, 1);
            tempStack.Children.Add(_score);

            tempStack.Children.Add(firstInfo.GetContent);

            _deckGPile.Margin = new Thickness(5, 5, 5, 5);


            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }
        public HorseshoeCardGameMainView(IEventAggregator aggregator,
                                         TestOptions test,
                                         HorseshoeCardGameVMData model,
                                         HorseshoeCardGameGameContainer gameContainer
                                         )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);
            _gameContainer = gameContainer;
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <HorseshoeCardGameCardInformation, ts, DeckOfCardsXF <HorseshoeCardGameCardInformation> >();
            _trick1        = new SeveralPlayersTrickXF <EnumSuitList, HorseshoeCardGameCardInformation, ts, DeckOfCardsXF <HorseshoeCardGameCardInformation>, HorseshoeCardGamePlayerItem>();
            ParentSingleUIContainer?restoreP = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(HorseshoeCardGameMainViewModel.RestoreScreen));
            }
            StackLayout mainStack = new StackLayout();

            mainStack.Children.Add(_trick1);

            _score.AddColumn("Cards", false, nameof(HorseshoeCardGamePlayerItem.ObjectCount)); //very common.
            _score.AddColumn("T Won", true, nameof(HorseshoeCardGamePlayerItem.TricksWon), rightMargin: 10);
            _score.AddColumn("P Score", false, nameof(HorseshoeCardGamePlayerItem.PreviousScore));
            _score.AddColumn("T Score", false, nameof(HorseshoeCardGamePlayerItem.TotalScore));
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(HorseshoeCardGameMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(HorseshoeCardGameMainViewModel.Status));

            mainStack.Children.Add(_playerHandWPF);
            mainStack.Children.Add(firstInfo.GetContent);

            mainStack.Children.Add(_score);

            Grid finalGrid = new Grid();
            Grid tempGrid  = new Grid();

            AddLeftOverRow(tempGrid, 1);
            AddLeftOverRow(tempGrid, 1);
            AddLeftOverColumn(finalGrid, 1);
            AddAutoColumns(finalGrid, 1);
            AddControlToGrid(finalGrid, mainStack, 0, 0);
            AddControlToGrid(finalGrid, tempGrid, 0, 1);
            AddControlToGrid(tempGrid, _temp1, 0, 0);
            AddControlToGrid(tempGrid, _temp2, 1, 0);

            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }

            GamePackageViewModelBinder.ManuelElements.Clear();                             //often times i have to add manually.

            HorseshoeCardGameSaveInfo save = cons !.Resolve <HorseshoeCardGameSaveInfo>(); //usually needs this part for multiplayer games.

            _score !.LoadLists(save.PlayerList);
            _playerHandWPF !.LoadList(_model.PlayerHand1 !, ts.TagUsed); // i think
            _trick1 !.Init(_model.TrickArea1 !, _model.TrickArea1, ts.TagUsed);

            _gameContainer.SingleInfo = _gameContainer.PlayerList !.GetSelf();
            HorseshoeCardGamePlayerItem thisPlayer;

            if (_gameContainer.SingleInfo.Id == 1)
            {
                thisPlayer = _gameContainer.PlayerList[2];
            }
            else
            {
                thisPlayer = _gameContainer.PlayerList[1];
            }
            _temp1.LoadList(_gameContainer.SingleInfo.TempHand !);
            _temp2.LoadList(thisPlayer.TempHand !);

            Content = finalGrid;
        }
Example #21
0
        public LifeCardGameMainView(IEventAggregator aggregator,
                                    TestOptions test,
                                    LifeCardGameVMData model,
                                    LifeCardGameGameContainer gameContainer
                                    )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);
            _gameContainer = gameContainer;
            _deckGPile     = new BaseDeckXF <LifeCardGameCardInformation, LifeCardGameGraphicsCP, CardGraphicsXF>();
            _discardGPile  = new BasePileXF <LifeCardGameCardInformation, LifeCardGameGraphicsCP, CardGraphicsXF>();
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <LifeCardGameCardInformation, LifeCardGameGraphicsCP, CardGraphicsXF>();
            _currentCard   = new BasePileXF <LifeCardGameCardInformation, LifeCardGameGraphicsCP, CardGraphicsXF>();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(LifeCardGameMainViewModel.RestoreScreen));
            }
            _storyStack.Orientation = StackOrientation.Horizontal;
            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_deckGPile);
            otherStack.Children.Add(_discardGPile); // can reposition or not even have as well.
            otherStack.Children.Add(_currentCard);
            mainStack.Children.Add(otherStack);

            otherStack             = new StackLayout();
            otherStack.Orientation = StackOrientation.Horizontal;
            mainStack.Children.Add(otherStack);
            Button button;

            button = GetGamingButton("Years Passed", nameof(LifeCardGameMainViewModel.YearsPassedAsync));
            otherStack.Children.Add(button);
            button = GetGamingButton("Play Card", nameof(LifeCardGameMainViewModel.PlayCardAsync));
            otherStack.Children.Add(button);
            ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(LifeCardGameMainViewModel.OtherScreen))
            {
                HorizontalOptions = LayoutOptions.Start,
                VerticalOptions   = LayoutOptions.Start
            };

            otherStack.Children.Add(parent);



            _score.AddColumn("Cards Left", true, nameof(LifeCardGamePlayerItem.ObjectCount)); //very common.
            _score.AddColumn("Points", true, nameof(LifeCardGamePlayerItem.Points));
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(LifeCardGameMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(LifeCardGameMainViewModel.Status));
            mainStack.Children.Add(_playerHandWPF);
            otherStack             = new StackLayout();
            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_score);
            otherStack.Children.Add(firstInfo.GetContent);
            mainStack.Children.Add(otherStack);
            StackLayout finalStack = new StackLayout();

            finalStack.Orientation = StackOrientation.Horizontal;
            finalStack.Children.Add(mainStack);
            finalStack.Children.Add(_storyStack);


            _deckGPile.Margin = new Thickness(5, 5, 5, 5);

            _discardGPile.Margin = new Thickness(5, 5, 5, 5);

            if (restoreP != null)
            {
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = finalStack;
        }
Example #22
0
        public MilkRunMainView(IEventAggregator aggregator,
                               TestOptions test,
                               MilkRunVMData model,
                               MilkRunGameContainer gameContainer
                               )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);
            _gameContainer = gameContainer;
            _deckGPile     = new BaseDeckXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>();
            _discardGPile  = new BasePileXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>();
            _playerHandWPF = new BaseHandXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>();

            _opponentChocolateDeliveries  = new Label();
            _opponentChocolatePiles       = new BasicMultiplePilesXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>();
            _opponentStrawberryDeliveries = new Label();
            _opponentStrawberryPiles      = new BasicMultiplePilesXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>();
            _yourChocolateDeliveries      = new Label();
            _yourChocolatePiles           = new BasicMultiplePilesXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>();
            _yourStrawberryDeliveries     = new Label();
            _yourStrawberryPiles          = new BasicMultiplePilesXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>();


            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(MilkRunMainViewModel.RestoreScreen));
            }

            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_deckGPile);
            otherStack.Children.Add(_discardGPile); // can reposition or not even have as well.
            AddPlayArea(otherStack);
            mainStack.Children.Add(otherStack);
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(MilkRunMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(MilkRunMainViewModel.Status));


            StackLayout newStack = new StackLayout();

            mainStack.Children.Add(newStack);
            newStack.HorizontalOptions = LayoutOptions.Center;
            newStack.Margin            = new Thickness(0, 10, 0, 0);
            newStack.Children.Add(_playerHandWPF);
            newStack.Children.Add(firstInfo.GetContent);



            _deckGPile.Margin = new Thickness(5, 5, 5, 5);

            _discardGPile.Margin = new Thickness(5, 5, 5, 5);

            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }
Example #23
0
        public XactikaMainView(IEventAggregator aggregator,
                               TestOptions test,
                               XactikaVMData model,
                               IGamePackageResolver resolver,
                               IGamePackageRegister register,
                               StatsBoardCP boardCP
                               )
        {
            _aggregator = aggregator;
            _model      = model;
            _resolver   = resolver;
            _aggregator.Subscribe(this);
            _shape1        = new ChooseShapeXF();
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <XactikaCardInformation, XactikaGraphicsCP, CardGraphicsXF>();
            _trick1        = new SeveralPlayersTrickXF <EnumShapes, XactikaCardInformation, XactikaGraphicsCP, CardGraphicsXF, XactikaPlayerItem>();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(XactikaMainViewModel.RestoreScreen));
            }
            register.RegisterControl(_stats1.Element, "main");
            boardCP.LinkBoard();
            _score.AddColumn("Cards Left", false, nameof(XactikaPlayerItem.ObjectCount)); //very common.
            _score.AddColumn("Bid Amount", false, nameof(XactikaPlayerItem.BidAmount));
            _score.AddColumn("Tricks Won", false, nameof(XactikaPlayerItem.TricksWon));
            _score.AddColumn("Current Score", false, nameof(XactikaPlayerItem.CurrentScore));
            _score.AddColumn("Total Score", false, nameof(XactikaPlayerItem.TotalScore));
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(XactikaMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(XactikaMainViewModel.Status));
            firstInfo.AddRow("Round", nameof(XactikaMainViewModel.RoundNumber));
            firstInfo.AddRow("Mode", nameof(XactikaMainViewModel.GameModeText));
            StackLayout shapeStack = new StackLayout();

            shapeStack.Children.Add(_shape1);
            ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(XactikaMainViewModel.ShapeScreen));

            parent.HorizontalOptions = LayoutOptions.Start;
            parent.VerticalOptions   = LayoutOptions.Start;
            shapeStack.Children.Add(parent);
            Grid tempGrid = new Grid();

            AddAutoRows(tempGrid, 1);
            AddLeftOverColumn(tempGrid, 1);
            AddAutoColumns(tempGrid, 2);
            StackLayout tempStack = new StackLayout();

            tempStack.Orientation = StackOrientation.Horizontal;
            tempStack.Children.Add(_trick1);
            tempStack.Children.Add(shapeStack);
            AddControlToGrid(tempGrid, tempStack, 0, 0);
            parent = new ParentSingleUIContainer(nameof(XactikaMainViewModel.BidScreen));
            AddControlToGrid(tempGrid, parent, 0, 0); // if one is visible, then the other is not
            AddControlToGrid(tempGrid, _stats1, 0, 2);
            AddControlToGrid(tempGrid, _score, 0, 1); //problem is scoreboard.

            Grid finalGrid = new Grid();

            AddLeftOverRow(finalGrid, 1);
            AddLeftOverRow(finalGrid, 1);
            AddControlToGrid(finalGrid, tempGrid, 0, 0);
            AddControlToGrid(finalGrid, mainStack, 1, 0);

            mainStack.Children.Add(_playerHandWPF);
            mainStack.Children.Add(firstInfo.GetContent);
            //tempGrid.BackgroundColor = Color.Red;
            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = finalGrid;
        }
        public PaydayMainView(IEventAggregator aggregator,
                              TestOptions test,
                              GameBoardGraphicsCP graphicsCP,
                              IGamePackageRegister register,
                              PaydayGameContainer gameContainer,
                              PaydayVMData model
                              )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(PaydayMainViewModel.RestoreScreen));
            }

            _aggregator    = aggregator;
            _gameContainer = gameContainer;
            _model         = model;
            _aggregator.Subscribe(this);
            _board = new GameBoardXF();
            register.RegisterControl(_board.Element, "main");
            graphicsCP.LinkBoard();
            _score = new ScoreBoardXF();
            _score.AddColumn("Money", true, nameof(PaydayPlayerItem.MoneyHas), useCurrency: true, rightMargin: 10);
            _score.AddColumn("Loans", true, nameof(PaydayPlayerItem.Loans), useCurrency: true, rightMargin: 10);



            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Main Turn", nameof(PaydayMainViewModel.NormalTurn));
            firstInfo.AddRow("Other Turn", nameof(PaydayMainViewModel.OtherLabel));
            firstInfo.AddRow("Progress", nameof(PaydayMainViewModel.MonthLabel));
            firstInfo.AddRow("Status", nameof(PaydayMainViewModel.Status));


            var         firstContent = firstInfo.GetContent;
            StackLayout tempStack    = new StackLayout();

            AddVerticalLabelGroup("Instructions", nameof(PaydayMainViewModel.Instructions), tempStack);
            ScrollView tempScroll = new ScrollView();

            tempScroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Never;

            tempScroll.Content = tempStack;

            StackLayout firstStack = new StackLayout();

            firstStack.Orientation = StackOrientation.Horizontal;
            firstStack.Children.Add(_board);
            mainStack.Children.Add(firstStack);
            firstStack.Margin = new Thickness(3, 3, 3, 0);
            Grid rightGrid = new Grid();

            //this is very iffy.  lots of adjustments may be needed.
            //it only works for large tablets now anyways.


            firstStack.Children.Add(rightGrid);
            AddPixelRow(rightGrid, 225);
            AddLeftOverRow(rightGrid, 1);
            AddAutoColumns(rightGrid, 1);
            Grid grid1 = new Grid();

            AddControlToGrid(rightGrid, grid1, 0, 0);
            AddAutoRows(grid1, 1);
            AddPixelColumn(grid1, 200);
            AddPixelColumn(grid1, 130);
            AddPixelColumn(grid1, 250);
            //AddLeftOverColumn(grid1, 1);
            StackLayout stack1 = new StackLayout();

            AddControlToGrid(grid1, stack1, 0, 0);

            ParentSingleUIContainer mailPile = new ParentSingleUIContainer(nameof(PaydayMainViewModel.MailPileScreen));
            ParentSingleUIContainer dealPile = new ParentSingleUIContainer(nameof(PaydayMainViewModel.DealPileScreen));

            stack1.Children.Add(mailPile);
            stack1.Children.Add(dealPile);

            ParentSingleUIContainer roller = new ParentSingleUIContainer(nameof(PaydayMainViewModel.RollerScreen));

            stack1.Children.Add(roller);
            AddControlToGrid(grid1, tempScroll, 0, 1); // instructions on card
            //StackLayout endStack = new StackLayout();
            //endStack.Children.Add(_score);
            //endStack.Children.Add(firstContent);


            AddControlToGrid(grid1, _score, 0, 2);
            //AddControlToGrid(grid1, firstContent, 0, 2);
            //AddControlToGrid(grid1, _score, 0, 3);
            Grid grid2 = new Grid();

            AddControlToGrid(rightGrid, grid2, 1, 0);
            AddAutoRows(grid2, 1);
            AddAutoColumns(grid2, 1);
            AddLeftOverColumn(grid2, 1);
            StackLayout finalStack = new StackLayout();

            _dealList = new BaseHandXF <DealCard, CardGraphicsCP, DealCardXF>();
            _dealList.HeightRequest     = 500;
            _dealList.HandType          = HandObservable <DealCard> .EnumHandList.Vertical;
            _dealList.HorizontalOptions = LayoutOptions.Start;

            finalStack.Children.Add(_dealList);
            AddControlToGrid(grid2, finalStack, 0, 0);
            _currentPiece               = new PawnPiecesXF <EnumColorChoice>();
            _currentPiece.IsVisible     = false; // until proven to need it
            _currentPiece.WidthRequest  = 70;
            _currentPiece.HeightRequest = 70;
            _currentPiece.Margin        = new Thickness(5, 5, 5, 5);
            _currentPiece.Init();
            finalStack.Children.Add(_currentPiece);

            ParentSingleUIContainer mailList = new ParentSingleUIContainer(nameof(PaydayMainViewModel.MailListScreen));

            AddControlToGrid(grid2, mailList, 0, 1);



            ParentSingleUIContainer extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.DealOrBuyScreen));

            AddControlToGrid(grid2, extras, 0, 1);

            extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.BuyDealScreen));
            AddControlToGrid(grid2, extras, 0, 1);

            extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.ChooseDealScreen));
            AddControlToGrid(grid2, extras, 0, 1);
            extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.LotteryScreen));
            AddControlToGrid(grid2, extras, 0, 1);
            extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.PlayerScreen));
            AddControlToGrid(grid2, extras, 0, 1);
            //_score.Margin = new Thickness(0, -150, 0, 0);
            mainStack.Children.Add(firstContent);

            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }
        public RageBiddingView(IEventAggregator aggregator, RageCardGameVMData model, RageCardGameGameContainer gameContainer)
        {
            _aggregator = aggregator;
            _aggregator.Subscribe(this);
            StackLayout     stack = new StackLayout();
            NumberChooserXF bid   = new NumberChooserXF();
            BaseHandXF <RageCardGameCardInformation, RageCardGameGraphicsCP, CardGraphicsXF> hand = new BaseHandXF <RageCardGameCardInformation, RageCardGameGraphicsCP, CardGraphicsXF>();
            ScoreBoardXF score = new ScoreBoardXF();

            RageCardGameMainView.PopulateScores(score);
            Button            button  = GetGamingButton("Submit", nameof(RageBiddingViewModel.BidAsync));
            SimpleLabelGridXF bidInfo = new SimpleLabelGridXF();

            bidInfo.AddRow("Trump", nameof(RageBiddingViewModel.TrumpSuit));
            bidInfo.AddRow("Turn", nameof(RageBiddingViewModel.NormalTurn));
            stack.Children.Add(bid);
            stack.Children.Add(button);
            stack.Children.Add(hand);
            stack.Children.Add(bidInfo.GetContent);
            stack.Children.Add(score);
            Content = stack;
            score !.LoadLists(gameContainer.SaveRoot.PlayerList);
            hand !.LoadList(model.PlayerHand1 !, "");
            bid !.LoadLists(model.Bid1);
        }
        public UnoMainView(IEventAggregator aggregator,
                           TestOptions test,
                           UnoVMData model
                           )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _deckGPile     = new BaseDeckXF <UnoCardInformation, UnoGraphicsCP, CardGraphicsXF>();
            _discardGPile  = new BasePileXF <UnoCardInformation, UnoGraphicsCP, CardGraphicsXF>();
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <UnoCardInformation, UnoGraphicsCP, CardGraphicsXF>();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(UnoMainViewModel.RestoreScreen));
            }

            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_deckGPile);
            otherStack.Children.Add(_discardGPile); // can reposition or not even have as well.

            var endButton = GetGamingButton("End Turn", nameof(UnoMainViewModel.EndTurnAsync));

            endButton.HorizontalOptions = LayoutOptions.Start;
            otherStack.Children.Add(endButton);
            ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(UnoMainViewModel.SayUnoScreen));

            otherStack.Children.Add(parent);

            mainStack.Children.Add(otherStack);
            _score.AddColumn("Cards Left", true, nameof(UnoPlayerItem.ObjectCount)); //very common.
            _score.AddColumn("Total Points", true, nameof(UnoPlayerItem.TotalPoints), rightMargin: 10);
            _score.AddColumn("Previous Points", true, nameof(UnoPlayerItem.PreviousPoints), rightMargin: 10);
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(UnoMainViewModel.NormalTurn));
            firstInfo.AddRow("Next", nameof(UnoMainViewModel.NextPlayer));
            firstInfo.AddRow("Status", nameof(UnoMainViewModel.Status));


            mainStack.Children.Add(_playerHandWPF);
            mainStack.Children.Add(firstInfo.GetContent);

            otherStack             = new StackLayout();
            otherStack.Orientation = StackOrientation.Horizontal;
            mainStack.Children.Add(otherStack);
            otherStack.Children.Add(_score);
            //this is only a starting point.


            _deckGPile.Margin = new Thickness(5, 5, 5, 5);

            _discardGPile.Margin = new Thickness(5, 5, 5, 5);

            if (restoreP != null)
            {
                mainStack.Children.Add(restoreP);              //default add to grid but does not have to.
            }
            UnoSaveInfo save = cons !.Resolve <UnoSaveInfo>(); //usually needs this part for multiplayer games.

            _score !.LoadLists(save.PlayerList);
            _playerHandWPF !.LoadList(_model.PlayerHand1 !, ts.TagUsed); // i think
            _discardGPile !.Init(_model.Pile1 !, ts.TagUsed);            // may have to be here (well see)
            _discardGPile.StartListeningDiscardPile();                   // its the main one.

            _deckGPile !.Init(_model.Deck1 !, ts.TagUsed);               // try here.  may have to do something else as well (?)
            _deckGPile.StartListeningMainDeck();


            Content = mainStack;
        }
        public A8RoundRummyMainView(IEventAggregator aggregator,
                                    TestOptions test,
                                    A8RoundRummyVMData model,
                                    A8RoundRummyGameContainer gameContainer
                                    )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);
            _gameContainer = gameContainer;
            _deckGPile     = new BaseDeckXF <A8RoundRummyCardInformation, A8RoundRummyGraphicsCP, CardGraphicsXF>();
            _discardGPile  = new BasePileXF <A8RoundRummyCardInformation, A8RoundRummyGraphicsCP, CardGraphicsXF>();
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <A8RoundRummyCardInformation, A8RoundRummyGraphicsCP, CardGraphicsXF>();
            _roundControl  = new RoundUI();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(A8RoundRummyMainViewModel.RestoreScreen));
            }

            Grid grid2 = new Grid();

            AddLeftOverColumn(grid2, 65);
            AddLeftOverColumn(grid2, 40); // can adjust as needed
            AddControlToGrid(grid2, mainStack, 0, 0);
            AddControlToGrid(grid2, _roundControl, 0, 1);



            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_deckGPile);
            otherStack.Children.Add(_discardGPile); // can reposition or not even have as well.
            var thisBut = GetGamingButton("Go Out", nameof(A8RoundRummyMainViewModel.GoOutAsync));

            otherStack.Children.Add(thisBut);
            mainStack.Children.Add(_playerHandWPF);
            _score.AddColumn("Cards Left", true, nameof(A8RoundRummyPlayerItem.ObjectCount)); //very common.
            _score.AddColumn("Total Score", true, nameof(A8RoundRummyPlayerItem.TotalScore));
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(A8RoundRummyMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(A8RoundRummyMainViewModel.Status));
            firstInfo.AddRow("Next", nameof(A8RoundRummyMainViewModel.NextTurn));
            mainStack.Children.Add(firstInfo.GetContent);
            mainStack.Children.Add(otherStack);
            mainStack.Children.Add(_score);


            _deckGPile.Margin = new Thickness(5, 5, 5, 5);

            _discardGPile.Margin = new Thickness(5, 5, 5, 5);

            if (restoreP != null)
            {
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = grid2;
        }
Example #28
0
        public SkuckCardGameMainView(IEventAggregator aggregator,
                                     TestOptions test,
                                     SkuckCardGameVMData model,
                                     SkuckCardGameGameContainer gameContainer
                                     )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);
            _gameContainer = gameContainer;
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <SkuckCardGameCardInformation, ts, DeckOfCardsXF <SkuckCardGameCardInformation> >();
            _trick1        = new TwoPlayerTrickXF <EnumSuitList, SkuckCardGameCardInformation, ts, DeckOfCardsXF <SkuckCardGameCardInformation> >();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(SkuckCardGameMainViewModel.RestoreScreen));
            }
            _score.AddColumn("Strength", false, nameof(SkuckCardGamePlayerItem.StrengthHand));
            _score.AddColumn("Tie", false, nameof(SkuckCardGamePlayerItem.TieBreaker));
            _score.AddColumn("Bid", false, nameof(SkuckCardGamePlayerItem.BidAmount), visiblePath: nameof(SkuckCardGamePlayerItem.BidVisible));
            _score.AddColumn("Won", false, nameof(SkuckCardGamePlayerItem.TricksWon));
            _score.AddColumn("Cards", false, nameof(SkuckCardGamePlayerItem.ObjectCount));
            _score.AddColumn("P Rounds", false, nameof(SkuckCardGamePlayerItem.PerfectRounds));
            _score.AddColumn("T Score", false, nameof(SkuckCardGamePlayerItem.TotalScore));
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Round", nameof(SkuckCardGameMainViewModel.RoundNumber));
            firstInfo.AddRow("Trump", nameof(SkuckCardGameMainViewModel.TrumpSuit)); //if trump is not needed, then comment.
            firstInfo.AddRow("Turn", nameof(SkuckCardGameMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(SkuckCardGameMainViewModel.Status));
            _playerHandWPF.Divider = 1.4;
            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_trick1);
            ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(SkuckCardGameMainViewModel.BidScreen));

            otherStack.Children.Add(parent);
            parent = new ParentSingleUIContainer(nameof(SkuckCardGameMainViewModel.SuitScreen));
            otherStack.Children.Add(parent);
            parent = new ParentSingleUIContainer(nameof(SkuckCardGameMainViewModel.ChoosePlayScreen));
            otherStack.Children.Add(parent);
            mainStack.Children.Add(otherStack);


            mainStack.Children.Add(_playerHandWPF);
            otherStack             = new StackLayout();
            otherStack.Orientation = StackOrientation.Horizontal;
            mainStack.Children.Add(otherStack);
            otherStack.Children.Add(_score);
            otherStack.Children.Add(firstInfo.GetContent);
            Grid finalGrid = new Grid();
            Grid tempGrid  = new Grid();

            AddLeftOverRow(tempGrid, 1);
            AddLeftOverRow(tempGrid, 1);
            AddLeftOverColumn(finalGrid, 1);
            AddAutoColumns(finalGrid, 1);
            AddControlToGrid(finalGrid, mainStack, 0, 0);
            AddControlToGrid(finalGrid, tempGrid, 0, 1);
            AddControlToGrid(tempGrid, _temp1, 0, 0);
            AddControlToGrid(tempGrid, _temp2, 1, 0);


            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }

            GamePackageViewModelBinder.ManuelElements.Clear();                     //often times i have to add manually.

            SkuckCardGameSaveInfo save = cons !.Resolve <SkuckCardGameSaveInfo>(); //usually needs this part for multiplayer games.

            _score !.LoadLists(save.PlayerList);
            _playerHandWPF !.LoadList(_model.PlayerHand1 !, ts.TagUsed); // i think
            _trick1 !.Init(_model.TrickArea1 !, ts.TagUsed);
            SkuckCardGamePlayerItem selfPlayer  = _gameContainer.PlayerList !.GetSelf();
            SkuckCardGamePlayerItem otherPlayer = _gameContainer.PlayerList.GetOnlyOpponent();

            _temp1.LoadList(selfPlayer.TempHand !);
            _temp2.LoadList(otherPlayer.TempHand !);

            Content = finalGrid;
        }
        public TileRummyMainView(IEventAggregator aggregator,
                                 TileRummyVMData model,
                                 TestOptions test
                                 )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);


            _score = new ScoreBoardXF();
            _hand1 = new BaseHandXF <TileInfo, TileCP, TileXF>();
            _pool1 = new BoneYardXF <TileInfo, TileCP, TileXF, TileShuffler>();
            _tempG = new TempRummySetsXF <EnumColorType, EnumColorType, TileInfo, TileCP, TileXF>();
            _mainG = new MainRummySetsXF <EnumColorType, EnumColorType, TileInfo, TileCP, TileXF, TileSet, SavedSet>();

            var endButton = GetSmallerButton("End Turn", nameof(TileRummyMainViewModel.EndTurnAsync));

            endButton.HorizontalOptions = LayoutOptions.Start;
            var firstButton = GetSmallerButton("Create First Sets", nameof(TileRummyMainViewModel.CreateFirstSetsAsync));
            var otherButton = GetSmallerButton("Create New Set", nameof(TileRummyMainViewModel.CreateNewSetAsync));
            var undoButton  = GetSmallerButton("Reset Moves", nameof(TileRummyMainViewModel.UndoMoveAsync));

            _score.AddColumn("Tiles Left", true, nameof(TileRummyPlayerItem.ObjectCount));
            _score.AddColumn("Score", true, nameof(TileRummyPlayerItem.Score));

            if (ScreenUsed == EnumScreen.SmallTablet)
            {
                _tempG.HeightRequest = 120;
            }
            else
            {
                _tempG.HeightRequest = 200;
            }
            _pool1.WidthRequest = 250;

            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(TileRummyMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(TileRummyMainViewModel.Status));
            var  firstContent = firstInfo.GetContent;
            Grid completeGrid = new Grid();

            AddLeftOverRow(completeGrid, 55);
            AddAutoRows(completeGrid, 1);
            AddLeftOverRow(completeGrid, 50);
            AddAutoRows(completeGrid, 1);
            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_pool1);
            StackLayout stack = new StackLayout();

            stack.Children.Add(firstButton);
            stack.Children.Add(otherButton);
            stack.Children.Add(undoButton);
            stack.Children.Add(endButton);
            otherStack.Children.Add(stack);
            stack = new StackLayout();
            stack.Children.Add(_tempG);
            stack.Children.Add(firstContent);
            stack.Children.Add(_score);
            otherStack.Children.Add(stack);
            AddControlToGrid(completeGrid, otherStack, 0, 0);
            AddControlToGrid(completeGrid, _hand1, 1, 0);
            _pool1.Margin = new Thickness(2, 2, 2, 2);
            AddControlToGrid(completeGrid, _mainG, 2, 0); // used the wrong one.

            ParentSingleUIContainer?restoreP = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(TileRummyMainViewModel.RestoreScreen));
            }
            if (restoreP != null)
            {
                AddControlToGrid(completeGrid, restoreP, 3, 0); //default add to grid but does not have to.
            }


            Content = completeGrid;
        }
Example #30
0
        public CousinRummyMainView(IEventAggregator aggregator,
                                   TestOptions test,
                                   CousinRummyVMData model
                                   )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _deckGPile     = new BaseDeckXF <RegularRummyCard, ts, DeckOfCardsXF <RegularRummyCard> >();
            _discardGPile  = new BasePileXF <RegularRummyCard, ts, DeckOfCardsXF <RegularRummyCard> >();
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <RegularRummyCard, ts, DeckOfCardsXF <RegularRummyCard> >();
            _tempG         = new TempRummySetsXF <EnumSuitList, EnumColorList, RegularRummyCard, ts, DeckOfCardsXF <RegularRummyCard> >();
            _mainG         = new MainRummySetsXF <EnumSuitList, EnumColorList, RegularRummyCard, ts, DeckOfCardsXF <RegularRummyCard>, PhaseSet, SavedSet>();

            ParentSingleUIContainer?restoreP = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(CousinRummyMainViewModel.RestoreScreen));
            }

            Grid buyGrid = new Grid();

            AddAutoColumns(buyGrid, 2);
            AddAutoRows(buyGrid, 1);
            AddPixelRow(buyGrid, 100);
            var button = GetSmallerButton("Pass", nameof(CousinRummyMainViewModel.PassAsync));

            AddControlToGrid(buyGrid, button, 0, 0);
            button = GetSmallerButton("Buy", nameof(CousinRummyMainViewModel.BuyAsync));
            AddControlToGrid(buyGrid, button, 0, 1);
            AddControlToGrid(buyGrid, _deckGPile, 1, 0);
            AddControlToGrid(buyGrid, _discardGPile, 1, 1);

            Grid gameGrid = new Grid();

            AddLeftOverRow(gameGrid, 45); // try that
            AddAutoRows(gameGrid, 1);
            AddLeftOverRow(gameGrid, 30);
            var otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_tempG);
            AddControlToGrid(gameGrid, otherStack, 0, 0);

            _score.AddColumn("Cards Left", false, nameof(CousinRummyPlayerItem.ObjectCount)); //very common.
            _score.AddColumn("Tokens Left", false, nameof(CousinRummyPlayerItem.TokensLeft));
            _score.AddColumn("Current Score", false, nameof(CousinRummyPlayerItem.CurrentScore), rightMargin: 5);
            _score.AddColumn("Total Score", false, nameof(CousinRummyPlayerItem.TotalScore));
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Normal Turn", nameof(CousinRummyMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(CousinRummyMainViewModel.Status));
            firstInfo.AddRow("Other Turn", nameof(CousinRummyMainViewModel.OtherLabel));
            firstInfo.AddRow("Phase", nameof(CousinRummyMainViewModel.PhaseData));


            otherStack.Children.Add(_score);
            Grid bottomGrid = new Grid();

            AddLeftOverColumn(bottomGrid, 30);
            AddLeftOverColumn(bottomGrid, 70);
            otherStack = new StackLayout();
            button     = GetSmallerButton("Lay Down Initial Sets", nameof(CousinRummyMainViewModel.FirstSetsAsync));
            otherStack.Children.Add(button);
            button = GetSmallerButton("Lay Down Other Sets", nameof(CousinRummyMainViewModel.OtherSetsAsync)); // i think its othersets commands (?)
            otherStack.Children.Add(button);

            if (restoreP != null)
            {
                otherStack.Children.Add(restoreP); //default add to grid but does not have to.
            }

            AddControlToGrid(bottomGrid, otherStack, 0, 0);
            AddControlToGrid(bottomGrid, _mainG, 0, 1);
            AddControlToGrid(gameGrid, bottomGrid, 2, 0);
            otherStack                       = new StackLayout();
            otherStack.Orientation           = StackOrientation.Horizontal;
            _playerHandWPF.HorizontalOptions = LayoutOptions.StartAndExpand;
            otherStack.Children.Add(buyGrid);
            StackLayout tempStack = new StackLayout();

            tempStack.Children.Add(_playerHandWPF);
            tempStack.Children.Add(firstInfo.GetContent);
            otherStack.Children.Add(tempStack);
            AddControlToGrid(gameGrid, otherStack, 1, 0);

            _deckGPile.Margin = new Thickness(5, 5, 5, 5);

            _discardGPile.Margin = new Thickness(5, 5, 5, 5);


            Content = gameGrid;
        }