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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }