public PlayerSetsView(FourSuitRummyGameContainer gameContainer) { _main = new MainRummySetsXF <EnumSuitList, EnumColorList, RegularRummyCard, ts, DeckOfCardsXF <RegularRummyCard>, SetInfo, SavedSet>(); _main.WidthRequest = 600; Content = _main; _gameContainer = gameContainer; }
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 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; }
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 OpetongMainView(IEventAggregator aggregator, TestOptions test, OpetongVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <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>, RummySet, SavedSet>(); _poolG = new CardBoardXF <RegularRummyCard, ts, DeckOfCardsXF <RegularRummyCard> >(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(OpetongMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); Grid finalGrid = new Grid(); AddLeftOverRow(finalGrid, 50); AddAutoRows(finalGrid, 1); AddLeftOverRow(finalGrid, 50); otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_poolG); otherStack.Children.Add(_tempG); Button button = GetGamingButton($"Lay Down{Constants.vbCrLf}Single Set", nameof(OpetongMainViewModel.PlaySetAsync)); otherStack.Children.Add(button); StackLayout tempStack = new StackLayout(); mainStack.Children.Add(otherStack); _score.AddColumn("Cards Left", true, nameof(OpetongPlayerItem.ObjectCount)); //very common. _score.AddColumn("Sets Played", true, nameof(OpetongPlayerItem.SetsPlayed)); _score.AddColumn("Score", true, nameof(OpetongPlayerItem.TotalScore)); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(OpetongMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(OpetongMainViewModel.Status)); firstInfo.AddRow("Instructions", nameof(OpetongMainViewModel.Instructions)); tempStack.Children.Add(_score); tempStack.Children.Add(firstInfo.GetContent); otherStack.Children.Add(tempStack); AddControlToGrid(finalGrid, otherStack, 0, 0); AddControlToGrid(finalGrid, _playerHandWPF, 1, 0); AddControlToGrid(finalGrid, _mainG, 2, 0); _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 = finalGrid; }
public Phase10MainView(IEventAggregator aggregator, TestOptions test, Phase10VMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <Phase10CardInformation, Phase10GraphicsCP, CardGraphicsXF>(); _discardGPile = new BasePileXF <Phase10CardInformation, Phase10GraphicsCP, CardGraphicsXF>(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <Phase10CardInformation, Phase10GraphicsCP, CardGraphicsXF>(); _tempG = new TempRummySetsXF <EnumColorTypes, EnumColorTypes, Phase10CardInformation, Phase10GraphicsCP, CardGraphicsXF>(); _mainG = new MainRummySetsXF <EnumColorTypes, EnumColorTypes, Phase10CardInformation, Phase10GraphicsCP, CardGraphicsXF, PhaseSet, SavedSet>(); Grid finalGrid = new Grid(); AddAutoRows(finalGrid, 1); // has to be this way because of scoreboard. AddLeftOverRow(finalGrid, 1); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(Phase10MainViewModel.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("Score", true, nameof(Phase10PlayerItem.TotalScore)); _score.AddColumn("Cards Left", true, nameof(Phase10PlayerItem.ObjectCount)); _score.AddColumn("Phase", true, nameof(Phase10PlayerItem.Phase)); _score.AddColumn("Skipped", true, nameof(Phase10PlayerItem.MissNextTurn), useTrueFalse: true); _score.AddColumn("Completed", true, nameof(Phase10PlayerItem.Completed), useTrueFalse: true); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(Phase10MainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(Phase10MainViewModel.Status)); firstInfo.AddRow("Phase", nameof(Phase10MainViewModel.CurrentPhase)); Grid firstGrid = new Grid(); AddLeftOverColumn(firstGrid, 40); // 50 was too much. if there is scrolling, i guess okay. AddAutoColumns(firstGrid, 1); // maybe 1 (well see) AddLeftOverColumn(firstGrid, 15); // for other details AddLeftOverColumn(firstGrid, 30); // for scoreboard AddControlToGrid(firstGrid, otherStack, 0, 1); StackLayout firstStack = new StackLayout(); firstStack.Children.Add(_playerHandWPF); var thisBut = GetSmallerButton("Complete" + Constants.vbCrLf + "Phase", nameof(Phase10MainViewModel.CompletePhaseAsync)); firstStack.Children.Add(thisBut); AddControlToGrid(firstGrid, firstStack, 0, 0); AddControlToGrid(firstGrid, firstInfo.GetContent, 0, 2); AddControlToGrid(firstGrid, _score, 0, 3); AddControlToGrid(finalGrid, firstGrid, 0, 0); _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); _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 Rummy500MainView(IEventAggregator aggregator, TestOptions test, Rummy500VMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <RegularRummyCard, ts, DeckOfCardsXF <RegularRummyCard> >(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <RegularRummyCard, ts, DeckOfCardsXF <RegularRummyCard> >(); _playerHandWPF.HorizontalOptions = LayoutOptions.Fill; _discardRummy = new BaseHandXF <RegularRummyCard, ts, DeckOfCardsXF <RegularRummyCard> >(); _mainG = new MainRummySetsXF <EnumSuitList, EnumColorList, RegularRummyCard, ts, DeckOfCardsXF <RegularRummyCard>, RummySet, SavedSet>(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(Rummy500MainViewModel.RestoreScreen)); } Grid finalGrid = new Grid(); AddAutoColumns(finalGrid, 1); AddLeftOverColumn(finalGrid, 1); AddControlToGrid(finalGrid, mainStack, 0, 1); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(Rummy500MainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(Rummy500MainViewModel.Status)); _score.AddColumn("Cards Left", false, nameof(Rummy500PlayerItem.ObjectCount)); //very common. _score.AddColumn("Points Played", false, nameof(Rummy500PlayerItem.PointsPlayed)); _score.AddColumn("Cards Played", false, nameof(Rummy500PlayerItem.CardsPlayed)); _score.AddColumn("Score Current", false, nameof(Rummy500PlayerItem.CurrentScore)); _score.AddColumn("Score Total", false, nameof(Rummy500PlayerItem.TotalScore)); otherStack.Children.Add(_score); otherStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(otherStack); mainStack.Children.Add(_playerHandWPF); otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; mainStack.Children.Add(otherStack); Button button; button = GetGamingButton("Discard Current", nameof(Rummy500MainViewModel.DiscardCurrentAsync)); button.HorizontalOptions = LayoutOptions.Start; button.VerticalOptions = LayoutOptions.Start; otherStack.Children.Add(button); button = GetGamingButton("Create New Rummy Set", nameof(Rummy500MainViewModel.CreateSetAsync)); button.HorizontalOptions = LayoutOptions.Start; button.VerticalOptions = LayoutOptions.Start; otherStack.Children.Add(button); mainStack.Children.Add(otherStack); _mainG.Divider = 1.3; mainStack.Children.Add(_mainG); _discardRummy.Divider = 1.4; _discardRummy.ExtraControlSpace = 20; _discardRummy.HandType = HandObservable <RegularRummyCard> .EnumHandList.Vertical; _discardRummy.HorizontalOptions = LayoutOptions.Start; _discardRummy.VerticalOptions = LayoutOptions.FillAndExpand; AddControlToGrid(finalGrid, _discardRummy, 0, 0); _deckGPile.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. Rummy500SaveInfo save = cons !.Resolve <Rummy500SaveInfo>(); //usually needs this part for multiplayer games. _score !.LoadLists(save.PlayerList); _playerHandWPF !.LoadList(_model.PlayerHand1 !, ts.TagUsed); // i think _deckGPile !.Init(_model.Deck1 !, ts.TagUsed); // try here. may have to do something else as well (?) _deckGPile.StartListeningMainDeck(); _mainG !.Init(_model.MainSets1 !, ts.TagUsed); Content = finalGrid; }
public ChinazoMainView(IEventAggregator aggregator, TestOptions test, ChinazoVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <ChinazoCard, ts, DeckOfCardsXF <ChinazoCard> >(); _discardGPile = new BasePileXF <ChinazoCard, ts, DeckOfCardsXF <ChinazoCard> >(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <ChinazoCard, ts, DeckOfCardsXF <ChinazoCard> >(); _tempG = new TempRummySetsXF <EnumSuitList, EnumColorList, ChinazoCard, ts, DeckOfCardsXF <ChinazoCard> >(); _mainG = new MainRummySetsXF <EnumSuitList, EnumColorList, ChinazoCard, ts, DeckOfCardsXF <ChinazoCard>, PhaseSet, SavedSet>(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(ChinazoMainViewModel.RestoreScreen)); } Grid finalGrid = new Grid(); AddAutoRows(finalGrid, 1); // has to be this way because of scoreboard. AddLeftOverRow(finalGrid, 1); Grid firstGrid = new Grid(); AddLeftOverColumn(firstGrid, 60); AddAutoColumns(firstGrid, 1); AddLeftOverColumn(firstGrid, 30); AddLeftOverColumn(firstGrid, 20); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. 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); var button = GetSmallerButton("Pass", nameof(ChinazoMainViewModel.PassAsync)); secondStack.Children.Add(button); button = GetSmallerButton("Take", nameof(ChinazoMainViewModel.TakeAsync)); secondStack.Children.Add(button); button = GetSmallerButton("Lay Down Sets", nameof(ChinazoMainViewModel.FirstSetsAsync)); firstStack.Children.Add(button); AddControlToGrid(firstGrid, firstStack, 0, 0); _score.AddColumn("Cards Left", false, nameof(ChinazoPlayerItem.ObjectCount)); //very common. _score.AddColumn("Current Score", false, nameof(ChinazoPlayerItem.CurrentScore), rightMargin: 5); _score.AddColumn("Total Score", false, nameof(ChinazoPlayerItem.TotalScore)); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(ChinazoMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(ChinazoMainViewModel.Status)); firstInfo.AddRow("Other Turn", nameof(ChinazoMainViewModel.OtherLabel)); firstInfo.AddRow("Phase", nameof(ChinazoMainViewModel.PhaseData)); AddControlToGrid(firstGrid, firstInfo.GetContent, 0, 2); AddControlToGrid(firstGrid, _score, 0, 3); AddControlToGrid(finalGrid, firstGrid, 0, 0); StackLayout thirdStack = new StackLayout(); thirdStack.Orientation = StackOrientation.Horizontal; thirdStack.Children.Add(_tempG); thirdStack.Children.Add(_mainG); AddControlToGrid(finalGrid, thirdStack, 1, 0); _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 MonasteryCardGameMainView(IEventAggregator aggregator, TestOptions test, MonasteryCardGameVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <MonasteryCardInfo, ts, DeckOfCardsXF <MonasteryCardInfo> >(); _discardGPile = new BasePileXF <MonasteryCardInfo, ts, DeckOfCardsXF <MonasteryCardInfo> >(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <MonasteryCardInfo, ts, DeckOfCardsXF <MonasteryCardInfo> >(); _tempG = new TempRummySetsXF <EnumSuitList, EnumColorList, MonasteryCardInfo, ts, DeckOfCardsXF <MonasteryCardInfo> >(); _mainG = new MainRummySetsXF <EnumSuitList, EnumColorList, MonasteryCardInfo, ts, DeckOfCardsXF <MonasteryCardInfo>, RummySet, SavedSet>(); _missionXF = new MissionUI(); Grid finalGrid = new Grid(); AddAutoRows(finalGrid, 1); AddLeftOverRow(finalGrid, 1); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(MonasteryCardGameMainViewModel.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.UseAbbreviationForTrueFalse = true; _score.AddColumn("Cards", false, nameof(MonasteryCardGamePlayerItem.ObjectCount)); _score.AddColumn("Done", false, nameof(MonasteryCardGamePlayerItem.FinishedCurrentMission), useTrueFalse: true); int x; for (x = 1; x <= 9; x++) { _score.AddColumn("M" + x, false, "Mission" + x + "Completed", useTrueFalse: true); } SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(MonasteryCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(MonasteryCardGameMainViewModel.Status)); Grid firstGrid = new Grid(); AddLeftOverColumn(firstGrid, 35); AddAutoColumns(firstGrid, 1); AddLeftOverColumn(firstGrid, 15); AddLeftOverColumn(firstGrid, 30); AddControlToGrid(firstGrid, _score, 0, 3); // use 3 instead of 4 here. AddControlToGrid(firstGrid, otherStack, 0, 1); AddControlToGrid(firstGrid, _playerHandWPF, 0, 0); AddControlToGrid(firstGrid, firstInfo.GetContent, 0, 2); AddControlToGrid(finalGrid, firstGrid, 0, 0); _tempG.Divider = 1.1; Grid bottomGrid = new Grid(); AddAutoColumns(bottomGrid, 1); AddLeftOverColumn(bottomGrid, 35); AddLeftOverColumn(bottomGrid, 65); AddControlToGrid(bottomGrid, _tempG, 0, 0); AddControlToGrid(bottomGrid, _mainG, 0, 1); AddControlToGrid(bottomGrid, _missionXF, 0, 2); AddControlToGrid(finalGrid, bottomGrid, 1, 0); _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; }
private void LoadSinglePlayer(GalaxyCardGamePlayerItem thisPlayer) { BaseHandXF <GalaxyCardGameCardInformation, ts, DeckOfCardsXF <GalaxyCardGameCardInformation> > thisPlanet = new BaseHandXF <GalaxyCardGameCardInformation, ts, DeckOfCardsXF <GalaxyCardGameCardInformation> >(); thisPlanet.LoadList(thisPlayer.PlanetHand !, ts.TagUsed); thisPlanet.Margin = new Thickness(5, 5, 5, 5); _planetStack !.Children.Add(thisPlanet); MainRummySetsXF <EnumSuitList, EnumColorList, GalaxyCardGameCardInformation, ts, DeckOfCardsXF <GalaxyCardGameCardInformation>, MoonClass, SavedSet> thisMoon = new MainRummySetsXF <EnumSuitList, EnumColorList, GalaxyCardGameCardInformation, ts, DeckOfCardsXF <GalaxyCardGameCardInformation>, MoonClass, SavedSet>(); thisMoon.Divider = 2; thisMoon.Init(thisPlayer.Moons !, ts.TagUsed); thisMoon.Margin = new Thickness(5, 5, 5, 5); thisMoon.HorizontalOptions = LayoutOptions.Fill; //lots of options here. if (ScreenUsed == EnumScreen.LargeTablet) { thisMoon.HeightRequest = 300; //bad news is on tablets, no source code to go by. } else { thisMoon.HeightRequest = 150; //well see. } AddControlToGrid(_moonGrid !, thisMoon, 0, _moonGrid !.Children.Count); //hopefully this works. }