public HuseHeartsMainView(IEventAggregator aggregator, TestOptions test, HuseHeartsVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <HuseHeartsCardInformation, ts, DeckOfCardsWPF <HuseHeartsCardInformation> >(); _playerHandWPF.Divider = 1.4; _trick1 = new SeveralPlayersTrickWPF <EnumSuitList, HuseHeartsCardInformation, ts, DeckOfCardsWPF <HuseHeartsCardInformation>, HuseHeartsPlayerItem>(); _dummy1 = new BaseHandWPF <HuseHeartsCardInformation, ts, DeckOfCardsWPF <HuseHeartsCardInformation> >(); _blind1 = new BaseHandWPF <HuseHeartsCardInformation, ts, DeckOfCardsWPF <HuseHeartsCardInformation> >(); _trick1.Width = 350; _dummy1.Divider = 1.4; StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(HuseHeartsMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; mainStack.Children.Add(otherStack); _score.AddColumn("Cards Left", false, nameof(HuseHeartsPlayerItem.ObjectCount)); //very common. _score.AddColumn("Tricks Won", false, nameof(HuseHeartsPlayerItem.TricksWon)); _score.AddColumn("Current Score", false, nameof(HuseHeartsPlayerItem.CurrentScore)); _score.AddColumn("Previous Score", false, nameof(HuseHeartsPlayerItem.PreviousScore)); _score.AddColumn("Total Score", false, nameof(HuseHeartsPlayerItem.TotalScore)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(HuseHeartsMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(HuseHeartsMainViewModel.Status)); firstInfo.AddRow("Round", nameof(HuseHeartsMainViewModel.RoundNumber)); otherStack.Children.Add(_score); otherStack.Children.Add(firstInfo.GetContent); otherStack.Children.Add(_trick1); ParentSingleUIContainer parent = new ParentSingleUIContainer() { Name = nameof(HuseHeartsMainViewModel.PassingScreen) }; otherStack.Children.Add(parent); parent = new ParentSingleUIContainer() { Name = nameof(HuseHeartsMainViewModel.MoonScreen) }; otherStack.Children.Add(parent); otherStack.Children.Add(_blind1); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(_dummy1); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public GalaxyCardGameMainView(IEventAggregator aggregator, TestOptions test, GalaxyCardGameVMData model, GalaxyCardGameGameContainer gameContainer ) { _aggregator = aggregator; _model = model; _model.WinUI = this; _gameContainer = gameContainer; _aggregator.Subscribe(this); gameContainer.SaveRoot.LoadWin(this); _deckGPile = new BaseDeckWPF <GalaxyCardGameCardInformation, ts, DeckOfCardsWPF <GalaxyCardGameCardInformation> >(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <GalaxyCardGameCardInformation, ts, DeckOfCardsWPF <GalaxyCardGameCardInformation> >(); _trick1 = new TwoPlayerTrickWPF <EnumSuitList, GalaxyCardGameCardInformation, ts, DeckOfCardsWPF <GalaxyCardGameCardInformation> >(); _trick1.Width = 500; _nextCard = new DeckOfCardsWPF <GalaxyCardGameCardInformation>(); _planetStack = new StackPanel(); _moonGrid = new Grid(); _planetStack.Orientation = Orientation.Horizontal; AddLeftOverColumn(_moonGrid, 50); AddLeftOverColumn(_moonGrid, 50); AddAutoRows(_moonGrid, 1); _nextCard.SendSize(ts.TagUsed, _gameContainer.SaveRoot !.WinningCard); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(GalaxyCardGameMainViewModel.RestoreScreen) }; } var endButton = GetGamingButton("End Turn", nameof(GalaxyCardGameMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; endButton.VerticalAlignment = VerticalAlignment.Top; StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_trick1); otherStack.Children.Add(_nextCard); otherStack.Children.Add(_deckGPile); mainStack.Children.Add(otherStack); _score.AddColumn("Cards Left", false, nameof(GalaxyCardGamePlayerItem.ObjectCount)); //very common. SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(GalaxyCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(GalaxyCardGameMainViewModel.Status)); mainStack.Children.Add(_moonGrid); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_playerHandWPF); StackPanel finalStack = new StackPanel(); finalStack.Children.Add(firstInfo.GetContent); var button = GetGamingButton("Create New Moon", nameof(GalaxyCardGameMainViewModel.MoonAsync)); finalStack.Children.Add(endButton); finalStack.Children.Add(button); otherStack.Children.Add(finalStack); mainStack.Children.Add(otherStack); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_planetStack); otherStack.Children.Add(_score); mainStack.Children.Add(otherStack); _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 XactikaMainView(IEventAggregator aggregator, TestOptions test, XactikaVMData model, IGamePackageRegister register, StatsBoardCP boardCP ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); register.RegisterControl(_stats1.Element, "main"); boardCP.LinkBoard(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <XactikaCardInformation, XactikaGraphicsCP, CardGraphicsWPF>(); _shape1 = new ChooseShapeWPF(); _trick1 = new SeveralPlayersTrickWPF <EnumShapes, XactikaCardInformation, XactikaGraphicsCP, CardGraphicsWPF, XactikaPlayerItem>(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(XactikaMainViewModel.RestoreScreen) }; } _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)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(XactikaMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(XactikaMainViewModel.Status)); firstInfo.AddRow("Round", nameof(XactikaMainViewModel.RoundNumber)); firstInfo.AddRow("Mode", nameof(XactikaMainViewModel.GameModeText)); StackPanel shapeStack = new StackPanel(); shapeStack.Children.Add(_shape1); ParentSingleUIContainer parent = new ParentSingleUIContainer() { Name = nameof(XactikaMainViewModel.ShapeScreen) }; shapeStack.Children.Add(parent); Grid tempGrid = new Grid(); AddAutoRows(tempGrid, 1); AddLeftOverColumn(tempGrid, 1); AddAutoColumns(tempGrid, 2); StackPanel tempStack = new StackPanel(); tempStack.Orientation = Orientation.Horizontal; tempStack.Children.Add(_trick1); tempStack.Children.Add(shapeStack); AddControlToGrid(tempGrid, tempStack, 0, 0); parent = new ParentSingleUIContainer() { Name = 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); mainStack.Children.Add(tempGrid); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(firstInfo.GetContent); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public FiveCrownsMainView(IEventAggregator aggregator, TestOptions test, FiveCrownsVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <FiveCrownsCardInformation, FiveCrownsGraphicsCP, CardGraphicsWPF>(); _discardGPile = new BasePileWPF <FiveCrownsCardInformation, FiveCrownsGraphicsCP, CardGraphicsWPF>(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <FiveCrownsCardInformation, FiveCrownsGraphicsCP, CardGraphicsWPF>(); _tempG = new TempRummySetsWPF <EnumSuitList, EnumColorList, FiveCrownsCardInformation, FiveCrownsGraphicsCP, CardGraphicsWPF>(); _mainG = new MainRummySetsWPF <EnumSuitList, EnumColorList, FiveCrownsCardInformation, FiveCrownsGraphicsCP, CardGraphicsWPF, PhaseSet, SavedSet>(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(FiveCrownsMainViewModel.RestoreScreen) }; } Grid finalGrid = new Grid(); AddLeftOverRow(finalGrid, 20); // has to be this way because of scoreboard. AddLeftOverRow(finalGrid, 80); mainStack.Children.Add(finalGrid); Grid firstGrid = new Grid(); AddLeftOverColumn(firstGrid, 40); // 50 was too much. if there is scrolling, i guess okay. AddLeftOverColumn(firstGrid, 10); // for buttons (can change if necessary) AddAutoColumns(firstGrid, 1); // maybe 1 (well see) AddLeftOverColumn(firstGrid, 15); // for other details AddLeftOverColumn(firstGrid, 30); // for scoreboard _deckGPile.HorizontalAlignment = HorizontalAlignment.Left; _deckGPile.VerticalAlignment = VerticalAlignment.Top; _discardGPile.HorizontalAlignment = HorizontalAlignment.Left; _discardGPile.VerticalAlignment = VerticalAlignment.Top; StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. AddControlToGrid(firstGrid, otherStack, 0, 2); // i think AddControlToGrid(firstGrid, _playerHandWPF, 0, 0); // i think var thisBut = GetGamingButton("Lay" + Constants.vbCrLf + "Down", nameof(FiveCrownsMainViewModel.LayDownSetsAsync)); StackPanel tempStack = new StackPanel(); tempStack.Orientation = Orientation.Horizontal; tempStack.Children.Add(thisBut); thisBut = GetGamingButton("Back", nameof(FiveCrownsMainViewModel.Back)); thisBut.FontSize -= 4; tempStack.Children.Add(thisBut); AddControlToGrid(firstGrid, tempStack, 0, 1); _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)); AddControlToGrid(firstGrid, _score, 0, 4); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(FiveCrownsMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(FiveCrownsMainViewModel.Status)); firstInfo.AddRow("Up To", nameof(FiveCrownsMainViewModel.UpTo)); AddControlToGrid(firstGrid, firstInfo.GetContent, 0, 3); AddControlToGrid(finalGrid, firstGrid, 0, 0); // i think _tempG.Height = 700; StackPanel thirdStack = new StackPanel(); thirdStack.Orientation = Orientation.Horizontal; thirdStack.Children.Add(_tempG); _mainG.Height = 700; // try this way. 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) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public FillOrBustMainView(IEventAggregator aggregator, TestOptions test, FillOrBustVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <FillOrBustCardInformation, FillOrBustGraphicsCP, CardGraphicsWPF>(); _discardGPile = new BasePileWPF <FillOrBustCardInformation, FillOrBustGraphicsCP, CardGraphicsWPF>(); _score = new ScoreBoardWPF(); _diceControl = new DiceListControlWPF <SimpleDice>(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(FillOrBustMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. mainStack.Children.Add(otherStack); _score.AddColumn("Current Score", true, nameof(FillOrBustPlayerItem.CurrentScore), rightMargin: 10); _score.AddColumn("Total Score", true, nameof(FillOrBustPlayerItem.TotalScore), rightMargin: 10); otherStack.Children.Add(_score); mainStack.Children.Add(_diceControl); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; mainStack.Children.Add(otherStack); var button = GetGamingButton("Roll Dice", nameof(FillOrBustMainViewModel.RollDiceAsync)); button.Margin = new Thickness(0, 0, 5, 0); otherStack.Children.Add(button); button = GetGamingButton("Remove Dice", nameof(FillOrBustMainViewModel.ChooseDiceAsync)); button.Margin = new Thickness(0, 0, 5, 0); otherStack.Children.Add(button); var endButton = GetGamingButton("End Turn", nameof(FillOrBustMainViewModel.EndTurnAsync)); otherStack.Children.Add(endButton); SimpleLabelGrid tempInfo = new SimpleLabelGrid(); tempInfo.AddRow("Temporary Score", nameof(FillOrBustMainViewModel.TempScore)); tempInfo.AddRow("Score", nameof(FillOrBustMainViewModel.DiceScore)); otherStack.Children.Add(tempInfo.GetContent); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(FillOrBustMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(FillOrBustMainViewModel.Status)); mainStack.Children.Add(firstInfo.GetContent); _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 = mainStack; }
public LifeCardGameMainView(IEventAggregator aggregator, TestOptions test, LifeCardGameVMData model, LifeCardGameGameContainer gameContainer ) { _aggregator = aggregator; _model = model; _gameContainer = gameContainer; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <LifeCardGameCardInformation, LifeCardGameGraphicsCP, CardGraphicsWPF>(); _discardGPile = new BasePileWPF <LifeCardGameCardInformation, LifeCardGameGraphicsCP, CardGraphicsWPF>(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <LifeCardGameCardInformation, LifeCardGameGraphicsCP, CardGraphicsWPF>(); _storyStack.Orientation = Orientation.Horizontal; _currentCard = new BasePileWPF <LifeCardGameCardInformation, LifeCardGameGraphicsCP, CardGraphicsWPF>(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(LifeCardGameMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.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 StackPanel(); otherStack.Orientation = Orientation.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() { Name = nameof(LifeCardGameMainViewModel.OtherScreen), HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top }; otherStack.Children.Add(parent); _score.AddColumn("Cards Left", true, nameof(LifeCardGamePlayerItem.ObjectCount)); //very common. _score.AddColumn("Points", true, nameof(LifeCardGamePlayerItem.Points)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(LifeCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(LifeCardGameMainViewModel.Status)); mainStack.Children.Add(_playerHandWPF); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_score); otherStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(otherStack); StackPanel finalStack = new StackPanel(); finalStack.Orientation = Orientation.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); _currentCard.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 RoundsCardGameMainView(IEventAggregator aggregator, TestOptions test, RoundsCardGameVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <RoundsCardGameCardInformation, ts, DeckOfCardsWPF <RoundsCardGameCardInformation> >(); _discardGPile = new BasePileWPF <RoundsCardGameCardInformation, ts, DeckOfCardsWPF <RoundsCardGameCardInformation> >(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <RoundsCardGameCardInformation, ts, DeckOfCardsWPF <RoundsCardGameCardInformation> >(); _trick1 = new TwoPlayerTrickWPF <EnumSuitList, RoundsCardGameCardInformation, ts, DeckOfCardsWPF <RoundsCardGameCardInformation> >(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(RoundsCardGameMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.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)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); 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); _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 = mainStack; }
public BackgammonMainView(IEventAggregator aggregator, TestOptions test, BackgammonVMData model, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; register.RegisterControl(_board.ThisElement, "main"); graphicsCP.LinkBoard(); if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(BackgammonMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; _diceControl = new DiceListControlWPF <SimpleDice>(); otherStack.Children.Add(_board); StackPanel finalStack = new StackPanel(); StackPanel tempStack = new StackPanel(); tempStack.Orientation = Orientation.Horizontal; var endButton = GetGamingButton("End Turn", nameof(BackgammonMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; mainStack.Children.Add(otherStack); Button other = GetGamingButton("Undo All Moves", nameof(BackgammonMainViewModel.UndoMoveAsync)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(BackgammonMainViewModel.NormalTurn)); firstInfo.AddRow("Game Status", nameof(BackgammonMainViewModel.Status)); firstInfo.AddRow("Moves Made", nameof(BackgammonMainViewModel.MovesMade)); firstInfo.AddRow("Last Status", nameof(BackgammonMainViewModel.LastStatus)); firstInfo.AddRow("Instructions", nameof(BackgammonMainViewModel.Instructions)); tempStack.Children.Add(endButton); tempStack.Children.Add(other); tempStack.Children.Add(_diceControl); finalStack.Children.Add(tempStack); finalStack.Children.Add(firstInfo.GetContent); otherStack.Children.Add(finalStack); //if we need to put to main, just change to main (?) if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public ThinkTwiceMainView(IEventAggregator aggregator, TestOptions test, ThinkTwiceVMData model, IGamePackageResolver resolver, ThinkTwiceGameContainer gameContainer ) { _aggregator = aggregator; _model = model; _resolver = resolver; _gameContainer = gameContainer; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); _multStack = new StackPanel() { Orientation = Orientation.Horizontal }; StackPanel firsts = new StackPanel(); StackPanel otherStack = new StackPanel() { Orientation = Orientation.Horizontal }; _diceControl = new DiceListControlWPF <SimpleDice>(); firsts.Children.Add(_multStack); firsts.Children.Add(_diceControl); Grid grid = new Grid(); StackPanel columnStack = new StackPanel(); AddControlToGrid(grid, columnStack, 0, 0); AddLeftOverColumn(grid, 70); AddLeftOverColumn(grid, 30); mainStack.Children.Add(grid); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(ThinkTwiceMainViewModel.RestoreScreen) }; } var thisRoll = GetGamingButton("Roll Dice", nameof(ThinkTwiceMainViewModel.RollDiceAsync)); var endButton = GetGamingButton("End Turn", nameof(ThinkTwiceMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; _score = new ScoreBoardWPF(); ParentSingleUIContainer parent = new ParentSingleUIContainer() { Name = nameof(ThinkTwiceMainViewModel.ScoreScreen) }; AddControlToGrid(grid, parent, 0, 1); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(ThinkTwiceMainViewModel.NormalTurn)); // there is no roll number needed for this game. firstInfo.AddRow("Roll", nameof(ThinkTwiceMainViewModel.RollNumber)); //if you don't need, it comment it out. firstInfo.AddRow("Category", nameof(ThinkTwiceMainViewModel.CategoryChosen)); firstInfo.AddRow("Score", nameof(ThinkTwiceMainViewModel.Score)); firstInfo.AddRow("Status", nameof(ThinkTwiceMainViewModel.Status)); firsts.Children.Add(firstInfo.GetContent); otherStack.Children.Add(firsts); StackPanel seconds = new StackPanel(); var thisBut = GetGamingButton("Roll Multiplier Dice", nameof(ThinkTwiceMainViewModel.RollMultAsync)); seconds.Children.Add(thisBut); seconds.Children.Add(thisRoll); seconds.Children.Add(endButton); otherStack.Children.Add(seconds); columnStack.Children.Add(otherStack); columnStack.Children.Add(_score); _score.AddColumn("Score Round", true, nameof(ThinkTwicePlayerItem.ScoreRound)); _score.AddColumn("Score Game", true, nameof(ThinkTwicePlayerItem.ScoreGame)); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public CousinRummyMainView(IEventAggregator aggregator, TestOptions test, CousinRummyVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _discardGPile = new BasePileWPF <RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _tempG = new TempRummySetsWPF <EnumSuitList, EnumColorList, RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _mainG = new MainRummySetsWPF <EnumSuitList, EnumColorList, RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard>, PhaseSet, SavedSet>(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(CousinRummyMainViewModel.RestoreScreen) }; } Grid buyGrid = new Grid(); AddAutoColumns(buyGrid, 2); AddAutoRows(buyGrid, 2); Button button; button = GetGamingButton("Pass", nameof(CousinRummyMainViewModel.PassAsync)); AddControlToGrid(buyGrid, button, 0, 0); button = GetGamingButton("Buy", nameof(CousinRummyMainViewModel.BuyAsync)); AddControlToGrid(buyGrid, button, 0, 1); Grid gameGrid = new Grid(); AddLeftOverColumn(gameGrid, 1); // try that AddAutoColumns(gameGrid, 1); AddAutoRows(gameGrid, 1); AddPixelRow(gameGrid, 450); _deckGPile.HorizontalAlignment = HorizontalAlignment.Left; _deckGPile.VerticalAlignment = VerticalAlignment.Top; AddControlToGrid(buyGrid, _deckGPile, 1, 0); _discardGPile.HorizontalAlignment = HorizontalAlignment.Left; _discardGPile.VerticalAlignment = VerticalAlignment.Top; AddControlToGrid(buyGrid, _discardGPile, 1, 1); StackPanel otherStack = new StackPanel(); otherStack.Children.Add(_playerHandWPF); button = GetGamingButton("Lay Down Initial Sets", nameof(CousinRummyMainViewModel.FirstSetsAsync)); otherStack.Children.Add(button); button = GetGamingButton("Lay Down Other Sets", nameof(CousinRummyMainViewModel.OtherSetsAsync)); // i think its othersets commands (?) otherStack.Children.Add(button); AddControlToGrid(gameGrid, otherStack, 0, 0); _tempG.Height = 400; AddControlToGrid(gameGrid, _tempG, 0, 1); AddControlToGrid(gameGrid, _mainG, 1, 0); Grid.SetColumnSpan(_mainG, 2); _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)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); 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)); var tempStack = new StackPanel(); tempStack.Orientation = Orientation.Horizontal; tempStack.Children.Add(_score); tempStack.Children.Add(buyGrid); tempStack.Children.Add(firstInfo.GetContent); otherStack.Children.Add(tempStack); mainStack.Children.Add(gameGrid); _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 CrazyEightsMainView(IEventAggregator aggregator, TestOptions test, CrazyEightsVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <RegularSimpleCard, ts, DeckOfCardsWPF <RegularSimpleCard> >(); _discardGPile = new BasePileWPF <RegularSimpleCard, ts, DeckOfCardsWPF <RegularSimpleCard> >(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <RegularSimpleCard, ts, DeckOfCardsWPF <RegularSimpleCard> >(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(CrazyEightsMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.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. SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(CrazyEightsMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(CrazyEightsMainViewModel.Status)); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(firstInfo.GetContent); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; mainStack.Children.Add(otherStack); otherStack.Children.Add(_score); ParentSingleUIContainer parent = new ParentSingleUIContainer() { Name = nameof(CrazyEightsMainViewModel.SuitScreen) }; _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. } mainStack.Children.Add(parent); Content = mainStack; }
public BlackjackMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <BlackjackCardInfo, ts, DeckOfCardsWPF <BlackjackCardInfo> >(); StackPanel stack = new StackPanel(); stack.Children.Add(_deckGPile); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _deckGPile.HorizontalAlignment = HorizontalAlignment.Left; _deckGPile.VerticalAlignment = VerticalAlignment.Top; Grid grid = new Grid(); AddAutoColumns(grid, 1); AddLeftOverColumn(grid, 1); // i think SimpleLabelGrid otherGrid = new SimpleLabelGrid(); otherGrid.AddRow("Wins", nameof(BlackjackMainViewModel.Wins)); otherGrid.AddRow("Losses", nameof(BlackjackMainViewModel.Losses)); otherGrid.AddRow("Draws", nameof(BlackjackMainViewModel.Draws)); stack.Children.Add(otherGrid.GetContent); grid.Children.Add(stack); stack = new StackPanel(); BaseHandWPF <BlackjackCardInfo, ts, DeckOfCardsWPF <BlackjackCardInfo> > humanHand = new BaseHandWPF <BlackjackCardInfo, ts, DeckOfCardsWPF <BlackjackCardInfo> >(); BaseHandWPF <BlackjackCardInfo, ts, DeckOfCardsWPF <BlackjackCardInfo> > computerHand = new BaseHandWPF <BlackjackCardInfo, ts, DeckOfCardsWPF <BlackjackCardInfo> >(); humanHand.HandType = HandObservable <BlackjackCardInfo> .EnumHandList.Horizontal; computerHand.HandType = HandObservable <BlackjackCardInfo> .EnumHandList.Horizontal; humanHand.Margin = new Thickness(3, 3, 3, 10); computerHand.Margin = new Thickness(3, 3, 3, 10); _humanHand = humanHand; _computerHand = computerHand; stack.Children.Add(computerHand); stack.Children.Add(humanHand); AddControlToGrid(grid, stack, 0, 1); otherGrid = new SimpleLabelGrid(); //GamePackageViewModelBinder.ManuelElements.Clear(); otherGrid.AddRow("Human Points", nameof(BlackjackMainViewModel.HumanPoints)); otherGrid.AddRow("Computer Points", nameof(BlackjackMainViewModel.ComputerPoints)); stack.Children.Add(otherGrid.GetContent); var thisBut = GetGamingButton("Hit Me", nameof(BlackjackMainViewModel.HitAsync)); // hopefully margins set automatically (well find out) StackPanel newStack = new StackPanel(); //GamePackageViewModelBinder.ManuelElements.Add(thisBut); newStack.Orientation = Orientation.Horizontal; StackPanel finalStack = new StackPanel(); finalStack.Children.Add(thisBut); thisBut = GetGamingButton("Stay", nameof(BlackjackMainViewModel.StayAsync)); //GamePackageViewModelBinder.ManuelElements.Add(thisBut); finalStack.Children.Add(thisBut); newStack.Children.Add(finalStack); finalStack = new StackPanel(); finalStack.Margin = new Thickness(50, 0, 0, 0); thisBut = GetGamingButton("Use Ace As One (1)", nameof(BlackjackMainViewModel.AceAsync)); thisBut.CommandParameter = BlackjackMainViewModel.EnumAceChoice.Low; var thisBind = GetVisibleBinding(nameof(BlackjackMainViewModel.NeedsAceChoice)); finalStack.SetBinding(VisibilityProperty, thisBind); // since its going to this stack, will make all based on this one. finalStack.Children.Add(thisBut); thisBut = GetGamingButton("Use Ace As Eleven (11)", nameof(BlackjackMainViewModel.AceAsync)); thisBut.CommandParameter = BlackjackMainViewModel.EnumAceChoice.High; finalStack.Children.Add(thisBut); newStack.Children.Add(finalStack); stack.Children.Add(newStack); Content = grid; }
public GoFishMainView(IEventAggregator aggregator, TestOptions test, GoFishVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <RegularSimpleCard, ts, DeckOfCardsWPF <RegularSimpleCard> >(); _discardGPile = new BasePileWPF <RegularSimpleCard, ts, DeckOfCardsWPF <RegularSimpleCard> >(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <RegularSimpleCard, ts, DeckOfCardsWPF <RegularSimpleCard> >(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(GoFishMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.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.HorizontalAlignment = HorizontalAlignment.Left; endButton.VerticalAlignment = VerticalAlignment.Top; _score.AddColumn("Cards Left", true, nameof(GoFishPlayerItem.ObjectCount)); //very common. _score.AddColumn("Pairs", true, nameof(GoFishPlayerItem.Pairs)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(GoFishMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(GoFishMainViewModel.Status)); StackPanel finalStack = new StackPanel(); otherStack.Children.Add(finalStack); finalStack.Children.Add(endButton); finalStack.Children.Add(firstInfo.GetContent); finalStack.Children.Add(_score); mainStack.Children.Add(_playerHandWPF); ParentSingleUIContainer ask = new ParentSingleUIContainer() { Name = 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 MillebournesMainView(IEventAggregator aggregator, MillebournesVMData model, MillebournesMainGameClass mainGame, MillebournesGameContainer gameContainer, TestOptions test ) { _aggregator = aggregator; _model = model; _mainGame = mainGame; _gameContainer = gameContainer; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <MillebournesCardInformation, MillebournesGraphicsCP, CardGraphicsWPF>(); _discardGPile = new BasePileWPF <MillebournesCardInformation, MillebournesGraphicsCP, CardGraphicsWPF>(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <MillebournesCardInformation, MillebournesGraphicsCP, CardGraphicsWPF>(); StackPanel mainStack = new StackPanel(); _newCard = new BasePileWPF <MillebournesCardInformation, MillebournesGraphicsCP, CardGraphicsWPF>(); _pileStack = new StackPanel(); StackPanel summaryStack = new StackPanel(); summaryStack.Orientation = Orientation.Horizontal; summaryStack.Children.Add(mainStack); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_newCard); //var thisBut = GetGamingButton("Coupe Foure", nameof(MillebournesViewModel.CoupeCommand)); // var thisBind = GetVisibleBinding(nameof(MillebournesViewModel.CoupeVisible)); //thisBut.SetBinding(VisibilityProperty, thisBind); ParentSingleUIContainer parent = new ParentSingleUIContainer() { Name = nameof(MillebournesMainViewModel.CoupeScreen) }; parent.HorizontalAlignment = HorizontalAlignment.Left; parent.VerticalAlignment = VerticalAlignment.Top; otherStack.Children.Add(parent); mainStack.Children.Add(otherStack); _score.AddColumn("Team", true, nameof(MillebournesPlayerItem.Team), rightMargin: 10); _score.AddColumn("Miles", true, nameof(MillebournesPlayerItem.Miles), rightMargin: 10); _score.AddColumn("Other Points", true, nameof(MillebournesPlayerItem.OtherPoints), rightMargin: 10); _score.AddColumn("Total Points", true, nameof(MillebournesPlayerItem.TotalPoints), rightMargin: 10); _score.AddColumn("# 200s", true, nameof(MillebournesPlayerItem.Number200s), rightMargin: 10); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(MillebournesMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(MillebournesMainViewModel.Status)); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(_score); summaryStack.Children.Add(_pileStack); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); _newCard.Margin = new Thickness(5, 5, 5, 5); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(MillebournesMainViewModel.RestoreScreen) }; } 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 = summaryStack; }
public DutchBlitzMainView(IEventAggregator aggregator, TestOptions test, DutchBlitzVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <DutchBlitzCardInformation, DutchBlitzGraphicsCP, CardGraphicsWPF>(); _discardGPile = new BasePileWPF <DutchBlitzCardInformation, DutchBlitzGraphicsCP, CardGraphicsWPF>(); _score = new ScoreBoardWPF(); _public1.Width = 700; _public1.Height = 500; StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(DutchBlitzMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_public1); otherStack.Children.Add(_score); _score.AddColumn("Stock Left", false, nameof(DutchBlitzPlayerItem.StockLeft)); _score.AddColumn("Points Round", false, nameof(DutchBlitzPlayerItem.PointsRound)); _score.AddColumn("Points Game", false, nameof(DutchBlitzPlayerItem.PointsGame)); mainStack.Children.Add(otherStack); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. var button = GetGamingButton("Dutch", nameof(DutchBlitzMainViewModel.DutchAsync)); otherStack.Children.Add(button); mainStack.Children.Add(otherStack); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(DutchBlitzMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(DutchBlitzMainViewModel.Status)); firstInfo.AddRow("Error", nameof(DutchBlitzMainViewModel.ErrorMessage)); otherStack.Children.Add(firstInfo.GetContent); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_yourDiscard); otherStack.Children.Add(_yourStock); mainStack.Children.Add(otherStack); _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 MonasteryCardGameMainView(IEventAggregator aggregator, TestOptions test, MonasteryCardGameVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <MonasteryCardInfo, ts, DeckOfCardsWPF <MonasteryCardInfo> >(); _discardGPile = new BasePileWPF <MonasteryCardInfo, ts, DeckOfCardsWPF <MonasteryCardInfo> >(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <MonasteryCardInfo, ts, DeckOfCardsWPF <MonasteryCardInfo> >(); _tempG = new TempRummySetsWPF <EnumSuitList, EnumColorList, MonasteryCardInfo, ts, DeckOfCardsWPF <MonasteryCardInfo> >(); _mainG = new MainRummySetsWPF <EnumSuitList, EnumColorList, MonasteryCardInfo, ts, DeckOfCardsWPF <MonasteryCardInfo>, RummySet, SavedSet>(); _missionWPF = new MissionUI(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(MonasteryCardGameMainViewModel.RestoreScreen) }; } Grid finalGrid = new Grid(); AddLeftOverRow(finalGrid, 20); // has to be this way because of scoreboard. AddLeftOverRow(finalGrid, 80); mainStack.Children.Add(finalGrid); 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 _deckGPile.HorizontalAlignment = HorizontalAlignment.Left; _deckGPile.VerticalAlignment = VerticalAlignment.Top; _discardGPile.HorizontalAlignment = HorizontalAlignment.Left; _discardGPile.VerticalAlignment = VerticalAlignment.Top; StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. AddControlToGrid(firstGrid, otherStack, 0, 1); AddControlToGrid(firstGrid, _playerHandWPF, 0, 0); _score.UseAbbreviationForTrueFalse = true; _score.AddColumn("Cards Left", false, nameof(MonasteryCardGamePlayerItem.ObjectCount)); _score.AddColumn("Finished Mission", false, nameof(MonasteryCardGamePlayerItem.FinishedCurrentMission), useTrueFalse: true); int x; for (x = 1; x <= 9; x++) { _score.AddColumn("Mission" + x, false, "Mission" + x + "Completed", useTrueFalse: true); } AddControlToGrid(firstGrid, _score, 0, 3); // use 3 instead of 4 here. SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(MonasteryCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(MonasteryCardGameMainViewModel.Status)); AddControlToGrid(firstGrid, firstInfo.GetContent, 0, 2); AddControlToGrid(finalGrid, firstGrid, 0, 0); _tempG.Height = 700; _mainG.Height = 700; //i think. Grid bottomGrid = new Grid(); AddAutoColumns(bottomGrid, 1); AddLeftOverColumn(bottomGrid, 40); AddLeftOverColumn(bottomGrid, 60); // most important is the last one. can adjust as needed though. especially on tablets AddControlToGrid(bottomGrid, _tempG, 0, 0); AddControlToGrid(bottomGrid, _mainG, 0, 1); AddControlToGrid(bottomGrid, _missionWPF, 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) { //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 MultiplayerOpeningView(IGameInfo game) { StackPanel tempStack; StackPanel mainStack = new StackPanel(); mainStack.Margin = new Thickness(5); _game = game; if (_game.CanHaveExtraComputerPlayers) { tempStack = new StackPanel() { Name = nameof(IMultiplayerOpeningViewModel.ExtraOptionsVisible) }; LoadPlayerOptions(EnumPlayOptions.ComputerExtra, tempStack); mainStack.Children.Add(tempStack); } Binding hostBind = SharedUIFunctions.GetVisibleBinding(nameof(IMultiplayerOpeningViewModel.HostCanStart)); string singleText; singleText = nameof(IMultiplayerOpeningViewModel.CanShowSingleOptions); Binding clientBind = SharedUIFunctions.GetVisibleBinding(singleText); Button button; if (_game.MinPlayers == 2) { button = SharedUIFunctions.GetGamingButton("Start Game With No Extra Players.", nameof(IMultiplayerOpeningViewModel.StartAsync)); button.CommandParameter = 0; button.SetBinding(VisibilityProperty, hostBind); mainStack.Children.Add(button); } button = SharedUIFunctions.GetGamingButton("Auto Resume Networked Game", nameof(IMultiplayerOpeningViewModel.ResumeMultiplayerGameAsync)); button.SetBinding(VisibilityProperty, hostBind); mainStack.Children.Add(button); button = SharedUIFunctions.GetGamingButton("Auto Resume Local Game", nameof(IMultiplayerOpeningViewModel.ResumeSinglePlayerAsync)); mainStack.Children.Add(button); //next issue. needs functions for cancomputer, canhuman bool canHuman; bool canComputer; canHuman = OpenPlayersHelper.CanHuman(_game); canComputer = OpenPlayersHelper.CanComputer(_game); if (canHuman && canComputer) { Grid tempgrid = new Grid(); AddLeftOverColumn(tempgrid, 1); AddLeftOverColumn(tempgrid, 1); tempStack = new StackPanel() { Name = singleText, //Margin = new Thickness(10) }; AddControlToGrid(tempgrid, tempStack, 0, 0); LoadPlayerOptions(EnumPlayOptions.ComputerLocal, tempStack); tempStack = new StackPanel() { Name = singleText }; AddControlToGrid(tempgrid, tempStack, 0, 1); LoadPlayerOptions(EnumPlayOptions.HumanLocal, tempStack); mainStack.Children.Add(tempgrid); } else if (canHuman) { tempStack = new StackPanel() { Name = singleText }; LoadPlayerOptions(EnumPlayOptions.HumanLocal, tempStack); mainStack.Children.Add(tempStack); } else if (canComputer) { tempStack = new StackPanel() { Name = singleText }; LoadPlayerOptions(EnumPlayOptions.ComputerLocal, tempStack); mainStack.Children.Add(tempStack); } else if (_game.SinglePlayerChoice == EnumPlayerChoices.Solitaire) { tempStack = new StackPanel() { Name = singleText }; LoadPlayerOptions(EnumPlayOptions.Solitaire, tempStack); mainStack.Children.Add(tempStack); } button = SharedUIFunctions.GetGamingButton("Start Network Game (Host)", nameof(IMultiplayerOpeningViewModel.HostAsync)); mainStack.Children.Add(button); button = SharedUIFunctions.GetGamingButton("Join Network Game", nameof(IMultiplayerOpeningViewModel.ConnectAsync)); mainStack.Children.Add(button); button = SharedUIFunctions.GetGamingButton("Cancel Selection", nameof(IMultiplayerOpeningViewModel.CancelConnectionAsync)); mainStack.Children.Add(button); tempStack = new StackPanel() { Name = nameof(IMultiplayerOpeningViewModel.HostCanStart) }; SimpleLabelGrid playerInfo = new SimpleLabelGrid(); playerInfo.AddRow("Players Connected", nameof(IMultiplayerOpeningViewModel.ClientsConnected)); playerInfo.AddRow("Previous Players", nameof(IMultiplayerOpeningViewModel.PreviousNonComputerNetworkedPlayers)); tempStack.Children.Add(playerInfo.GetContent); mainStack.Children.Add(tempStack); Content = mainStack; }
public SixtySix2PlayerMainView(IEventAggregator aggregator, TestOptions test, SixtySix2PlayerVMData model, IGamePackageResolver resolver ) { _aggregator = aggregator; _model = model; _resolver = resolver; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <SixtySix2PlayerCardInformation, ts, DeckOfCardsWPF <SixtySix2PlayerCardInformation> >(); _discardGPile = new BasePileWPF <SixtySix2PlayerCardInformation, ts, DeckOfCardsWPF <SixtySix2PlayerCardInformation> >(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <SixtySix2PlayerCardInformation, ts, DeckOfCardsWPF <SixtySix2PlayerCardInformation> >(); _trick1 = new TwoPlayerTrickWPF <EnumSuitList, SixtySix2PlayerCardInformation, ts, DeckOfCardsWPF <SixtySix2PlayerCardInformation> >(); _deckStack = new StackPanel(); _marriage1 = new BaseHandWPF <SixtySix2PlayerCardInformation, ts, DeckOfCardsWPF <SixtySix2PlayerCardInformation> >(); _guide1 = new GuideUI(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(SixtySix2PlayerMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckStack); _deckStack.Children.Add(_discardGPile); // can reposition or not even have as well. mainStack.Children.Add(otherStack); _score.AddColumn("Cards Left", true, nameof(SixtySix2PlayerPlayerItem.ObjectCount)); _score.AddColumn("Tricks Won", true, nameof(SixtySix2PlayerPlayerItem.TricksWon)); _score.AddColumn("Score Round", true, nameof(SixtySix2PlayerPlayerItem.ScoreRound)); _score.AddColumn("Game Points Round", true, nameof(SixtySix2PlayerPlayerItem.GamePointsRound)); _score.AddColumn("Total Points Game", true, nameof(SixtySix2PlayerPlayerItem.GamePointsGame)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(SixtySix2PlayerMainViewModel.NormalTurn)); firstInfo.AddRow("Trump", nameof(SixtySix2PlayerMainViewModel.TrumpSuit)); firstInfo.AddRow("Status", nameof(SixtySix2PlayerMainViewModel.Status)); firstInfo.AddRow("Bonus", nameof(SixtySix2PlayerMainViewModel.BonusPoints)); otherStack.Children.Add(_trick1); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(_score); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; var thisBut = GetGamingButton("Go Out", nameof(SixtySix2PlayerMainViewModel.GoOutAsync)); otherStack.Children.Add(thisBut); thisBut = GetGamingButton("Announce Marriage", nameof(SixtySix2PlayerMainViewModel.AnnouceMarriageAsync)); otherStack.Children.Add(thisBut); mainStack.Children.Add(otherStack); mainStack.Children.Add(_marriage1); Grid finalGrid = new Grid(); AddLeftOverColumn(finalGrid, 60); AddLeftOverColumn(finalGrid, 40); // hopefully that works. AddControlToGrid(finalGrid, mainStack, 0, 0); AddControlToGrid(finalGrid, _guide1, 0, 1); _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 = finalGrid; }
public FourSuitRummyMainView(IEventAggregator aggregator, TestOptions test, FourSuitRummyVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _discardGPile = new BasePileWPF <RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _tempG = new TempRummySetsWPF <EnumSuitList, EnumColorList, RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(FourSuitRummyMainViewModel.RestoreScreen) }; } Grid finalGrid = new Grid(); AddLeftOverRow(finalGrid, 20); // has to be this way because of scoreboard. AddLeftOverRow(finalGrid, 80); mainStack.Children.Add(finalGrid); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. Grid firstGrid = new Grid(); AddLeftOverColumn(firstGrid, 60); // 50 was too much. if there is scrolling, i guess okay. AddLeftOverColumn(firstGrid, 10); // for buttons (can change if necessary) AddAutoColumns(firstGrid, 1); // maybe 1 (well see) AddLeftOverColumn(firstGrid, 15); // for other details AddLeftOverColumn(firstGrid, 30); // for scoreboard _deckGPile.HorizontalAlignment = HorizontalAlignment.Left; _deckGPile.VerticalAlignment = VerticalAlignment.Top; _discardGPile.HorizontalAlignment = HorizontalAlignment.Left; _discardGPile.VerticalAlignment = VerticalAlignment.Top; AddControlToGrid(firstGrid, otherStack, 0, 2); // i think AddControlToGrid(firstGrid, _playerHandWPF, 0, 0); // i think var thisBut = GetGamingButton("Play Sets", nameof(FourSuitRummyMainViewModel.PlaySetsAsync)); AddControlToGrid(firstGrid, thisBut, 0, 1); _score.AddColumn("Cards Left", true, nameof(FourSuitRummyPlayerItem.ObjectCount)); //very common. _score.AddColumn("Total Score", true, nameof(FourSuitRummyPlayerItem.TotalScore)); AddControlToGrid(firstGrid, _score, 0, 4); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(FourSuitRummyMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(FourSuitRummyMainViewModel.Status)); AddControlToGrid(firstGrid, firstInfo.GetContent, 0, 3); AddControlToGrid(finalGrid, firstGrid, 0, 0); // i think _tempG.Height = 700; StackPanel thirdStack = new StackPanel(); thirdStack.Orientation = Orientation.Horizontal; thirdStack.Children.Add(_tempG); Grid setGrid = new Grid(); AddLeftOverColumn(setGrid, 50); AddLeftOverColumn(setGrid, 50); AddPixelRow(setGrid, 700); // i think this one needs that. thirdStack.Children.Add(setGrid); ParentSingleUIContainer parent = new ParentSingleUIContainer() { Name = nameof(FourSuitRummyMainViewModel.YourSetsScreen) }; AddControlToGrid(setGrid, parent, 0, 0); parent = new ParentSingleUIContainer() { Name = nameof(FourSuitRummyMainViewModel.OpponentSetsScreen) }; AddControlToGrid(setGrid, parent, 0, 1); 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) { //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 PaydayMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register, PaydayGameContainer gameContainer, PaydayVMData model ) { StackPanel mainStack = new StackPanel(); _aggregator = aggregator; _gameContainer = gameContainer; _model = model; _aggregator.Subscribe(this); _board = new GameBoardWPF(); register.RegisterControl(_board.Element, "main"); graphicsCP.LinkBoard(); _score = new ScoreBoardWPF(); _score.AddColumn("Money", true, nameof(PaydayPlayerItem.MoneyHas), useCurrency: true, rightMargin: 10); _score.AddColumn("Loans", true, nameof(PaydayPlayerItem.Loans), useCurrency: true, rightMargin: 10); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); 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)); //firstInfo.AddRow("Instructions", nameof(PaydayMainViewModel.Instructions)); var firstContent = firstInfo.GetContent; StackPanel tempStack = new StackPanel(); AddVerticalLabelGroup("Instructions", nameof(PaydayMainViewModel.Instructions), tempStack); ScrollViewer tempScroll = new ScrollViewer(); tempScroll.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; tempScroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled; tempScroll.Content = tempStack; ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.RestoreScreen) }; } StackPanel firstStack = new StackPanel(); firstStack.Orientation = Orientation.Horizontal; firstStack.Children.Add(_board); mainStack.Children.Add(firstStack); firstStack.Margin = new Thickness(3, 3, 3, 3); Grid rightGrid = new Grid(); 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, 150); AddPixelColumn(grid1, 200); AddLeftOverColumn(grid1, 1); StackPanel stack1 = new StackPanel(); AddControlToGrid(grid1, stack1, 0, 0); ParentSingleUIContainer mailPile = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.MailPileScreen) }; ParentSingleUIContainer dealPile = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.DealPileScreen) }; stack1.Children.Add(mailPile); stack1.Children.Add(dealPile); ParentSingleUIContainer roller = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.RollerScreen) }; stack1.Children.Add(roller); AddControlToGrid(grid1, tempScroll, 0, 1); // instructions on card 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); StackPanel finalStack = new StackPanel(); _dealList = new BaseHandWPF <DealCard, CardGraphicsCP, DealCardWPF>(); _dealList.Height = 500; _dealList.HandType = HandObservable <DealCard> .EnumHandList.Vertical; _dealList.HorizontalAlignment = HorizontalAlignment.Left; finalStack.Children.Add(_dealList); AddControlToGrid(grid2, finalStack, 0, 0); _currentPiece = new PawnPiecesWPF <EnumColorChoice>(); _currentPiece.Visibility = Visibility.Collapsed; // until proven to need it _currentPiece.Width = 80; _currentPiece.Height = 80; _currentPiece.Margin = new Thickness(5, 5, 5, 5); _currentPiece.Init(); finalStack.Children.Add(_currentPiece); ParentSingleUIContainer mailList = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.MailListScreen) }; AddControlToGrid(grid2, mailList, 0, 1); ParentSingleUIContainer extras = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.DealOrBuyScreen) }; AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.ChooseDealScreen) }; AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.LotteryScreen) }; AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.PlayerScreen) }; AddControlToGrid(grid2, extras, 0, 1); 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 RummyDiceMainView(IEventAggregator aggregator, TestOptions test, RummyDiceMainGameClass mainGame ) { _aggregator = aggregator; _mainGame = mainGame; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(RummyDiceMainViewModel.RestoreScreen) }; } StackPanel tempSets = new StackPanel(); RummyDiceHandWPF thisTemp = new RummyDiceHandWPF(); thisTemp.Index = 1; tempSets.Children.Add(thisTemp); _tempList !.Add(thisTemp); //forgot this too. thisTemp = new RummyDiceHandWPF(); thisTemp.Index = 2; tempSets.Children.Add(thisTemp); _tempList.Add(thisTemp); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(tempSets); _thisScore = new ScoreBoardWPF(); otherStack.Children.Add(_thisScore); mainStack.Children.Add(otherStack); SimpleLabelGrid otherScore = new SimpleLabelGrid(); otherScore.AddRow("Roll", nameof(RummyDiceMainViewModel.RollNumber), new RollConverter()); otherScore.AddRow("Score", nameof(RummyDiceMainViewModel.Score)); var tempGrid = otherScore.GetContent; tempGrid.VerticalAlignment = VerticalAlignment.Bottom; // try this way otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(tempGrid); Button thisBut; thisBut = GetGamingButton("Put Back", nameof(RummyDiceMainViewModel.BoardAsync)); thisBut.Margin = new Thickness(5, 0, 0, 0); otherStack.Children.Add(thisBut); mainStack.Children.Add(otherStack); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; _thisScore.AddColumn("Score Round", false, nameof(RummyDicePlayerItem.ScoreRound)); _thisScore.AddColumn("Score Game", false, nameof(RummyDicePlayerItem.ScoreGame)); _thisScore.AddColumn("Phase", false, nameof(RummyDicePlayerItem.Phase)); _thisScore.VerticalAlignment = VerticalAlignment.Top; otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; mainStack.Children.Add(otherStack); _diceControl = new RummyDiceListWPF(); thisBut = GetGamingButton("Roll", nameof(RummyDiceMainViewModel.RollAsync)); thisBut.HorizontalAlignment = HorizontalAlignment.Left; otherStack.Children.Add(thisBut); otherStack.Children.Add(_diceControl); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(RummyDiceMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(RummyDiceMainViewModel.Status)); firstInfo.AddRow("Phase", nameof(RummyDiceMainViewModel.CurrentPhase)); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; StackPanel bottomStack = new StackPanel(); otherStack.Children.Add(bottomStack); var endButton = GetGamingButton("End Turn", nameof(RummyDiceMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; endButton.Margin = new Thickness(5, 0, 0, 20); bottomStack.Children.Add(endButton); thisBut = GetGamingButton("Score Hand", nameof(RummyDiceMainViewModel.CheckAsync)); thisBut.Margin = new Thickness(5, 0, 0, 0); bottomStack.Children.Add(thisBut); otherStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(otherStack); 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 RackoUI _handWPF; //use this instead. public RackoMainView(IEventAggregator aggregator, TestOptions test, RackoVMData model, RackoGameContainer gameContainer ) { _aggregator = aggregator; _model = model; _gameContainer = gameContainer; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <RackoCardInformation, RackoGraphicsCP, CardGraphicsWPF>(); _discardGPile = new BasePileWPF <RackoCardInformation, RackoGraphicsCP, CardGraphicsWPF>(); _score = new ScoreBoardWPF(); _currentWPF = new BasePileWPF <RackoCardInformation, RackoGraphicsCP, CardGraphicsWPF>(); _handWPF = new RackoUI(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(RackoMainViewModel.RestoreScreen) }; } Grid finalGrid = new Grid(); AddAutoRows(finalGrid, 1); AddAutoColumns(finalGrid, 2); mainStack.Children.Add(_deckGPile); mainStack.Children.Add(_discardGPile); // can reposition or not even have as well. mainStack.Children.Add(_currentWPF); var thisBut = GetGamingButton("Discard Current Card", nameof(RackoMainViewModel.DiscardCurrentAsync)); mainStack.Children.Add(thisBut); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(RackoMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(RackoMainViewModel.Status)); mainStack.Children.Add(firstInfo.GetContent); thisBut = GetGamingButton("Racko", nameof(RackoMainViewModel.RackoAsync)); mainStack.Children.Add(thisBut); AddControlToGrid(finalGrid, mainStack, 0, 0); _score.AddColumn("Score Round", true, nameof(RackoPlayerItem.ScoreRound)); _score.AddColumn("Score Game", true, nameof(RackoPlayerItem.TotalScore)); int x; for (x = 1; x <= 10; x++) { _score.AddColumn("Section" + x, false, "Value" + x, nameof(RackoPlayerItem.CanShowValues));// 2 bindings. } mainStack.Children.Add(_score); _handWPF = new RackoUI(); AddControlToGrid(finalGrid, _handWPF, 0, 1); // first column _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 = finalGrid; }
public CribbageMainView(IEventAggregator aggregator, TestOptions test, CribbageVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <CribbageCard, ts, DeckOfCardsWPF <CribbageCard> >(); _discardGPile = new BasePileWPF <CribbageCard, ts, DeckOfCardsWPF <CribbageCard> >(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <CribbageCard, ts, DeckOfCardsWPF <CribbageCard> >(); _crib1 = new BaseHandWPF <CribbageCard, ts, DeckOfCardsWPF <CribbageCard> >(); _main1 = new BaseHandWPF <CribbageCard, ts, DeckOfCardsWPF <CribbageCard> >(); _otherScore = new ScoreUI(); _main1.Divider = 1.5; StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(CribbageMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. otherStack.Children.Add(_main1); mainStack.Children.Add(otherStack); _score.AddColumn("Cards Left", false, nameof(CribbagePlayerItem.ObjectCount)); //very common. _score.AddColumn("Is Skunk Hole", false, nameof(CribbagePlayerItem.IsSkunk), useTrueFalse: true); _score.AddColumn("First Position", false, nameof(CribbagePlayerItem.FirstPosition)); _score.AddColumn("Second Position", false, nameof(CribbagePlayerItem.SecondPosition)); _score.AddColumn("Score Round", false, nameof(CribbagePlayerItem.ScoreRound)); _score.AddColumn("Total Score", false, nameof(CribbagePlayerItem.TotalScore)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(CribbageMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(CribbageMainViewModel.Status)); firstInfo.AddRow("Dealer", nameof(CribbageMainViewModel.Dealer)); SimpleLabelGrid others = new SimpleLabelGrid(); others.AddRow("Count", nameof(CribbageMainViewModel.TotalCount)); mainStack.Children.Add(_playerHandWPF); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; mainStack.Children.Add(otherStack); var button = GetGamingButton("Continue", nameof(CribbageMainViewModel.ContinueAsync)); otherStack.Children.Add(button); button = GetGamingButton("To Crib", nameof(CribbageMainViewModel.CribAsync)); otherStack.Children.Add(button); button = GetGamingButton("Play", nameof(CribbageMainViewModel.PlayAsync)); otherStack.Children.Add(button); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; mainStack.Children.Add(otherStack); otherStack.Children.Add(firstInfo.GetContent); otherStack.Children.Add(_crib1); Grid finalGrid = new Grid(); AddPixelRow(finalGrid, 300); // hopefully this is enough AddLeftOverRow(finalGrid, 1); AddLeftOverColumn(finalGrid, 70); AddLeftOverColumn(finalGrid, 30); AddControlToGrid(finalGrid, mainStack, 0, 0); Grid.SetRowSpan(mainStack, 2); StackPanel finalStack = new StackPanel(); finalStack.Children.Add(others.GetContent); finalStack.Children.Add(_otherScore); AddControlToGrid(finalGrid, finalStack, 0, 1); AddControlToGrid(finalGrid, _score, 1, 1); _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 = finalGrid; }
public A8RoundRummyMainView(IEventAggregator aggregator, TestOptions test, A8RoundRummyVMData model, A8RoundRummyGameContainer gameContainer ) { _aggregator = aggregator; _model = model; _gameContainer = gameContainer; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <A8RoundRummyCardInformation, A8RoundRummyGraphicsCP, CardGraphicsWPF>(); _discardGPile = new BasePileWPF <A8RoundRummyCardInformation, A8RoundRummyGraphicsCP, CardGraphicsWPF>(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <A8RoundRummyCardInformation, A8RoundRummyGraphicsCP, CardGraphicsWPF>(); _roundControl = new RoundUI(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(A8RoundRummyMainViewModel.RestoreScreen) }; } Grid grid2 = new Grid(); AddLeftOverColumn(grid2, 60); AddLeftOverColumn(grid2, 40); // can adjust as needed AddControlToGrid(grid2, mainStack, 0, 0); _roundControl = new RoundUI(); AddControlToGrid(grid2, _roundControl, 0, 1); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.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); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); 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); _score.AddColumn("Cards Left", true, nameof(A8RoundRummyPlayerItem.ObjectCount)); //very common. _score.AddColumn("Total Score", true, nameof(A8RoundRummyPlayerItem.TotalScore)); 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 MonopolyCardGameMainView(IEventAggregator aggregator, TestOptions test, MonopolyCardGameVMData model, MonopolyCardGameGameContainer gameContainer ) { _aggregator = aggregator; _model = model; _gameContainer = gameContainer; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <MonopolyCardGameCardInformation, MonopolyCardGameGraphicsCP, CardGraphicsWPF>(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <MonopolyCardGameCardInformation, MonopolyCardGameGraphicsCP, CardGraphicsWPF>(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(MonopolyCardGameMainViewModel.RestoreScreen) }; } mainStack.Children.Add(_cardDetail); Grid finalGrid = new Grid(); AddPixelColumn(finalGrid, 900); AddAutoColumns(finalGrid, 1); _tradeStack.Orientation = Orientation.Horizontal; AddControlToGrid(finalGrid, _tradeStack, 0, 1); AddControlToGrid(finalGrid, mainStack, 0, 0); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckGPile); StackPanel tempStack = new StackPanel(); var thisBut = GetGamingButton("Resume", nameof(MonopolyCardGameMainViewModel.ResumeAsync)); tempStack.Children.Add(thisBut); thisBut = GetGamingButton("Go Out", nameof(MonopolyCardGameMainViewModel.GoOutAsync)); tempStack.Children.Add(thisBut); otherStack.Children.Add(tempStack); mainStack.Children.Add(otherStack); _score.AddColumn("Cards Left", true, nameof(MonopolyCardGamePlayerItem.ObjectCount)); //very common. _score.AddColumn("Previous Money", true, nameof(MonopolyCardGamePlayerItem.PreviousMoney), useCurrency: true); _score.AddColumn("Total Money", true, nameof(MonopolyCardGamePlayerItem.TotalMoney), useCurrency: true); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(MonopolyCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(MonopolyCardGameMainViewModel.Status)); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(_score); _deckGPile.Margin = new Thickness(5, 5, 5, 5); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = finalGrid; }
public MilkRunMainView(IEventAggregator aggregator, TestOptions test, MilkRunVMData model, MilkRunGameContainer gameContainer ) { _aggregator = aggregator; _model = model; _gameContainer = gameContainer; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsWPF>(); _discardGPile = new BasePileWPF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsWPF>(); _playerHandWPF = new BaseHandWPF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsWPF>(); _opponentChocolateDeliveries = new TextBlock(); _opponentStrawberryDeliveries = new TextBlock(); _opponentChocolatePiles = new BasicMultiplePilesWPF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsWPF>(); _opponentStrawberryPiles = new BasicMultiplePilesWPF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsWPF>(); _yourChocolateDeliveries = new TextBlock(); _yourStrawberryDeliveries = new TextBlock(); _yourChocolatePiles = new BasicMultiplePilesWPF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsWPF>(); _yourStrawberryPiles = new BasicMultiplePilesWPF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsWPF>(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(MilkRunMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. AddPlayArea(otherStack); mainStack.Children.Add(otherStack); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(MilkRunMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(MilkRunMainViewModel.Status)); StackPanel newStack = new StackPanel(); mainStack.Children.Add(newStack); newStack.HorizontalAlignment = HorizontalAlignment.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) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public OpetongMainView(IEventAggregator aggregator, TestOptions test, OpetongVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _tempG = new TempRummySetsWPF <EnumSuitList, EnumColorList, RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _mainG = new MainRummySetsWPF <EnumSuitList, EnumColorList, RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard>, RummySet, SavedSet>(); _poolG = new CardBoardWPF <RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(OpetongMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_poolG); _poolG.HorizontalAlignment = HorizontalAlignment.Left; _poolG.VerticalAlignment = VerticalAlignment.Top; _tempG.Height = 350; otherStack.Children.Add(_tempG); var button = GetGamingButton("Lay Down Single Set", nameof(OpetongMainViewModel.PlaySetAsync)); otherStack.Children.Add(button); 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)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(OpetongMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(OpetongMainViewModel.Status)); firstInfo.AddRow("Instructions", nameof(OpetongMainViewModel.Instructions)); StackPanel finalStack = new StackPanel(); finalStack.Children.Add(_score); finalStack.Children.Add(firstInfo.GetContent); otherStack.Children.Add(finalStack); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(_mainG); _deckGPile.Margin = new Thickness(5, 5, 5, 5); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public RookMainView(IEventAggregator aggregator, TestOptions test, RookVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <RookCardInformation, RookGraphicsCP, CardGraphicsWPF>(); _trick1 = new SeveralPlayersTrickWPF <EnumColorTypes, RookCardInformation, RookGraphicsCP, CardGraphicsWPF, RookPlayerItem>(); _dummy1 = new BaseHandWPF <RookCardInformation, RookGraphicsCP, CardGraphicsWPF>(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(RookMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; mainStack.Children.Add(otherStack); ParentSingleUIContainer parent = new ParentSingleUIContainer() { Name = nameof(RookMainViewModel.NestScreen) }; mainStack.Children.Add(parent); _score.AddColumn("Bid Amount", true, nameof(RookPlayerItem.BidAmount)); _score.AddColumn("Tricks Won", false, nameof(RookPlayerItem.TricksWon)); _score.AddColumn("Current Score", false, nameof(RookPlayerItem.CurrentScore)); _score.AddColumn("Total Score", false, nameof(RookPlayerItem.TotalScore)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(RookMainViewModel.NormalTurn)); firstInfo.AddRow("Trump", nameof(RookMainViewModel.TrumpSuit)); firstInfo.AddRow("Status", nameof(RookMainViewModel.Status)); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(_dummy1); otherStack.Children.Add(_score); otherStack.Children.Add(firstInfo.GetContent); parent = new ParentSingleUIContainer() { Name = nameof(RookMainViewModel.BidScreen) }; otherStack.Children.Add(parent); parent = new ParentSingleUIContainer() { Name = nameof(RookMainViewModel.ColorScreen) }; otherStack.Children.Add(parent); otherStack.Children.Add(_trick1); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public Rummy500MainView(IEventAggregator aggregator, TestOptions test, Rummy500VMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _playerHandWPF.Margin = new Thickness(5, 5, 5, 5); _playerHandWPF.HorizontalAlignment = HorizontalAlignment.Stretch; _discardRummy = new BaseHandWPF <RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard> >(); _mainG = new MainRummySetsWPF <EnumSuitList, EnumColorList, RegularRummyCard, ts, DeckOfCardsWPF <RegularRummyCard>, RummySet, SavedSet>(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(Rummy500MainViewModel.RestoreScreen) }; } Grid finalGrid = new Grid(); AddAutoColumns(finalGrid, 1); AddLeftOverColumn(finalGrid, 1); AddControlToGrid(finalGrid, mainStack, 0, 1); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckGPile); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); 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(_playerHandWPF); Button button; button = GetGamingButton("Discard Current", nameof(Rummy500MainViewModel.DiscardCurrentAsync)); otherStack.Children.Add(button); button = GetGamingButton("Create New Rummy Set", nameof(Rummy500MainViewModel.CreateSetAsync)); otherStack.Children.Add(button); mainStack.Children.Add(otherStack); _mainG.Divider = 1.3; _mainG.Height = 550; // i think mainStack.Children.Add(_mainG); _discardRummy.Divider = 1.7; _discardRummy.HandType = HandObservable <RegularRummyCard> .EnumHandList.Vertical; _discardRummy.HorizontalAlignment = HorizontalAlignment.Left; _discardRummy.VerticalAlignment = VerticalAlignment.Stretch; AddControlToGrid(finalGrid, _discardRummy, 0, 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 UnoMainView(IEventAggregator aggregator, TestOptions test, UnoVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <UnoCardInformation, UnoGraphicsCP, CardGraphicsWPF>(); _discardGPile = new BasePileWPF <UnoCardInformation, UnoGraphicsCP, CardGraphicsWPF>(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <UnoCardInformation, UnoGraphicsCP, CardGraphicsWPF>(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(UnoMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.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.HorizontalAlignment = HorizontalAlignment.Left; otherStack.Children.Add(endButton); ParentSingleUIContainer parent = new ParentSingleUIContainer() { Name = 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); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); 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 StackPanel(); otherStack.Orientation = Orientation.Horizontal; mainStack.Children.Add(otherStack); otherStack.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. } 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; }