public MancalaMainView(IEventAggregator aggregator, TestOptions test, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); _register = register; _register.RegisterControl(_board.Element, ""); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(MancalaMainViewModel.RestoreScreen)); } SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(MancalaMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(MancalaMainViewModel.Status)); firstInfo.AddRow("Instructions", nameof(MancalaMainViewModel.Instructions)); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; mainStack.Children.Add(otherStack); otherStack.Children.Add(_board); otherStack.Children.Add(firstInfo.GetContent); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public RollEmMainView(IEventAggregator aggregator, TestOptions test, RollEmVMData model, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); register.RegisterControl(_board.Element, ""); graphicsCP.LinkBoard(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(RollEmMainViewModel.RestoreScreen) }; } StackPanel tempStack = new StackPanel(); mainStack.Children.Add(tempStack); tempStack.Orientation = Orientation.Horizontal; tempStack.Children.Add(_board); var thisRoll = GetGamingButton("Roll Dice", nameof(RollEmMainViewModel.RollDiceAsync)); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; _diceControl = new DiceListControlWPF <SimpleDice>(); otherStack.Children.Add(_diceControl); otherStack.Children.Add(thisRoll); var endButton = GetGamingButton("End Turn", nameof(RollEmMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; otherStack.Children.Add(endButton); mainStack.Children.Add(otherStack); _score = new ScoreBoardWPF(); _score.AddColumn("Score Round", true, nameof(RollEmPlayerItem.ScoreRound)); _score.AddColumn("Score Game", true, nameof(RollEmPlayerItem.ScoreGame)); tempStack.Children.Add(_score); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(RollEmMainViewModel.NormalTurn)); // there is no roll number needed for this game. firstInfo.AddRow("Round", nameof(RollEmMainViewModel.Round)); //if you don't need, it comment it out. firstInfo.AddRow("Status", nameof(RollEmMainViewModel.Status)); mainStack.Children.Add(firstInfo.GetContent); 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 LifeBoardGameMainView(IEventAggregator aggregator, IGamePackageRegister register, GameBoardGraphicsCP graphicsCP ) { _aggregator = aggregator; _aggregator.Subscribe(this); Grid grid = new Grid(); AddAutoColumns(grid, 1); AddLeftOverColumn(grid, 70); AddLeftOverColumn(grid, 30);//i think split 50/50 is fine. SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(LifeBoardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(LifeBoardGameMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(LifeBoardGameMainViewModel.Status)); StackPanel stack = new StackPanel(); stack.Margin = new Thickness(3); stack.Children.Add(firstInfo.GetContent); AddVerticalLabelGroup("Space Details", nameof(LifeBoardGameMainViewModel.GameDetails), stack); AddControlToGrid(grid, stack, 0, 2); //on tablets will be different. GameBoardWPF gameBoard = new GameBoardWPF(aggregator); gameBoard.VerticalAlignment = VerticalAlignment.Top; register.RegisterControl(gameBoard.Element, ""); graphicsCP.LinkBoard(); AddControlToGrid(grid, gameBoard, 0, 0); gameBoard.Margin = new Thickness(3); stack = new StackPanel(); //everything else will go to this stack. stack.Margin = new Thickness(3); Type type = typeof(LifeBoardGameMainViewModel); CustomBasicList <string> list = type.GetProperties(x => x.Name.EndsWith("Screen") && x.Name != "MainScreen" && x.Name != "BoardScreen").Select(x => x.Name).ToCustomBasicList(); if (list.Count == 0) { throw new BasicBlankException("No screens found using reflection. Rethink"); } list.ForEach(x => { ParentSingleUIContainer middle = new ParentSingleUIContainer() { Name = x, HorizontalAlignment = HorizontalAlignment.Left //Margin = new Thickness(5) }; stack.Children.Add(middle); }); AddControlToGrid(grid, stack, 0, 1); Content = grid; }
public PassOutDiceGameMainView(IEventAggregator aggregator, TestOptions test, PassOutDiceGameVMData model, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; register.RegisterControl(_board.ThisElement, ""); //hopefully okay. graphicsCP.LinkBoard(); if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(PassOutDiceGameMainViewModel.RestoreScreen) }; } StackPanel finalStack = new StackPanel(); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; _diceControl = new DiceListControlWPF <SimpleDice>(); otherStack.Children.Add(finalStack); otherStack.Children.Add(_board); var endButton = GetGamingButton("End Turn", nameof(PassOutDiceGameMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; mainStack.Children.Add(otherStack); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(PassOutDiceGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(PassOutDiceGameMainViewModel.Status)); finalStack.Children.Add(firstInfo.GetContent); finalStack.Children.Add(endButton); finalStack.Children.Add(_diceControl); 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 ChessMainView(IEventAggregator aggregator, TestOptions test, IGamePackageRegister register, GameBoardGraphicsCP graphics) { _aggregator = aggregator; _register = register; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(ChessMainViewModel.RestoreScreen) }; } _register.RegisterControl(_board.Element, "main"); graphics.LinkBoard(); //this is always needed now. _board.Margin = new Thickness(3); var endButton = GetGamingButton("End Turn", nameof(ChessMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; Button other = GetGamingButton("Show Tie", nameof(ChessMainViewModel.TieAsync)); other.HorizontalAlignment = HorizontalAlignment.Left; SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(ChessMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(ChessMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(ChessMainViewModel.Status)); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_board); mainStack.Children.Add(otherStack); StackPanel tempStack = new StackPanel(); tempStack.Orientation = Orientation.Horizontal; tempStack.Children.Add(endButton); Button undo = GetGamingButton("Undo Moves", nameof(ChessMainViewModel.UndoMovesAsync)); tempStack.Children.Add(undo); tempStack.Children.Add(other); StackPanel finals = new StackPanel(); finals.Children.Add(tempStack); finals.Children.Add(firstInfo.GetContent); otherStack.Children.Add(finals); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public CandylandMainView(IEventAggregator aggregator, TestOptions test, IGamePackageRegister register //unless i extend the contract, will be done this way. ) { Background = Brushes.White; _aggregator = aggregator; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(CandylandMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); _ourBoard = new GameboardWPF(); register.RegisterControl(_ourBoard.Element1, "main"); //register!.RegisterSingleton(_ourBoard.Element1, "main"); //i think _ourCard = new CardGraphicsWPF(); // bindings are finished _ourCard.SendSize("main", new CandylandCardData()); otherStack.Margin = new Thickness(5, 5, 5, 5); otherStack.Orientation = Orientation.Horizontal; StackPanel firstStack = new StackPanel(); otherStack.Children.Add(firstStack); firstStack.Children.Add(_ourCard); //you already subscribed. just hook up another event for this. _ourPiece = new PieceWPF(); _ourPiece.Margin = new Thickness(0, 5, 0, 0); _ourPiece.SetSizes(); BaseLabelGrid firstInfo = new BaseLabelGrid(); firstInfo.AddRow("Turn", nameof(CandylandMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(CandylandMainViewModel.Status)); firstStack.Children.Add(firstInfo.GetContent); firstStack.Children.Add(_ourPiece); _ourBoard.HorizontalAlignment = HorizontalAlignment.Left; _ourBoard.VerticalAlignment = VerticalAlignment.Top; _ourBoard.Margin = new Thickness(5, 0, 0, 0); otherStack.Children.Add(_ourBoard); 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; }
public TroubleMainView(IEventAggregator aggregator, TestOptions test, TroubleVMData model, TroubleGameContainer gameContainer, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _graphicsCP = graphicsCP; _aggregator.Subscribe(this); gameContainer.PositionDice = PositionDice; register.RegisterControl(_board.ThisElement, ""); graphicsCP.LinkBoard(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(TroubleMainViewModel.RestoreScreen)); } _tempGrid.Margin = new Thickness(5, 5, 5, 5); _diceControl = new DiceListControlXF <SimpleDice>(); _diceControl.Margin = new Thickness(10, 0, 0, 0); var endButton = GetGamingButton("End Turn", nameof(TroubleMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(TroubleMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(TroubleMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(TroubleMainViewModel.Status)); mainStack.Children.Add(_tempGrid); mainStack.Children.Add(firstInfo.GetContent); _tempStack.Children.Add(_diceControl); _tempStack.InputTransparent = true; //maybe this will be okay. _tempGrid.Children.Add(_board); 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 TroubleMainView(IEventAggregator aggregator, TestOptions test, TroubleVMData model, TroubleGameContainer gameContainer, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _graphicsCP = graphicsCP; _aggregator.Subscribe(this); gameContainer.PositionDice = PositionDice; register.RegisterControl(_board.ThisElement, ""); graphicsCP.LinkBoard(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(TroubleMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; _diceControl = new DiceListControlWPF <SimpleDice>(); mainStack.Children.Add(otherStack); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(TroubleMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(TroubleMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(TroubleMainViewModel.Status)); otherStack.Children.Add(_tempGrid); otherStack.Children.Add(firstInfo.GetContent); _tempGrid.Margin = new Thickness(5); _tempStack.Children.Add(_diceControl); _tempGrid.Children.Add(_board); 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 CandylandMainView(IEventAggregator aggregator, TestOptions test, IGamePackageRegister register ) { BackgroundColor = Color.White; _aggregator = aggregator; _aggregator.Subscribe(this); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(CandylandMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); _ourBoard = new GameBoardXF(); register.RegisterControl(_ourBoard.Element, "main"); _ourCard = new CardGraphicsXF(); // bindings are finished _ourCard.SendSize("main", new CandylandCardData()); otherStack.Margin = new Thickness(5, 5, 5, 5); otherStack.Orientation = StackOrientation.Horizontal; StackLayout firstStack = new StackLayout(); otherStack.Children.Add(firstStack); firstStack.Children.Add(_ourCard); //you already subscribed. just hook up another event for this. _ourPiece = new PieceXF(); _ourPiece.Margin = new Thickness(0, 5, 0, 0); _ourPiece.SetSizes(); BaseLabelGrid firstInfo = new BaseLabelGrid(); firstInfo.AddRow("Turn", nameof(CandylandMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(CandylandMainViewModel.Status)); firstStack.Children.Add(firstInfo.GetContent); firstStack.Children.Add(_ourPiece); _ourBoard.HorizontalOptions = LayoutOptions.Start; _ourBoard.VerticalOptions = LayoutOptions.Start; _ourBoard.Margin = new Thickness(5, 0, 0, 0); otherStack.Children.Add(_ourBoard); 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; }
public ChessMainView(IEventAggregator aggregator, TestOptions test, IGamePackageRegister register, GameBoardGraphicsCP graphics) { _aggregator = aggregator; _register = register; _aggregator.Subscribe(this); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(ChessMainViewModel.RestoreScreen)); } _register.RegisterControl(_board.Element, "main"); graphics.LinkBoard(); //this is always needed now. _board.Margin = new Thickness(3); mainStack.Children.Add(_board); var endButton = GetGamingButton("End Turn", nameof(ChessMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; Button other = GetGamingButton("Show Tie", nameof(ChessMainViewModel.TieAsync)); other.HorizontalOptions = LayoutOptions.Start; SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(ChessMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(ChessMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(ChessMainViewModel.Status)); StackLayout tempStack = new StackLayout(); tempStack.Orientation = StackOrientation.Horizontal; tempStack.Children.Add(endButton); tempStack.Children.Add(other); tempStack.Children.Add(firstInfo.GetContent); StackLayout finalStack = new StackLayout(); finalStack.Children.Add(tempStack); finalStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(finalStack); 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 SorryMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); register.RegisterControl(_board.ThisElement, ""); graphicsCP.LinkBoard(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(SorryMainViewModel.RestoreScreen) }; } StackPanel tempStack = new StackPanel(); Grid tempGrid = new Grid(); AddAutoRows(tempGrid, 1); AddPixelColumn(tempGrid, 500); AddAutoColumns(tempGrid, 1); AddControlToGrid(tempGrid, tempStack, 0, 0); AddControlToGrid(tempGrid, _board, 0, 1); mainStack.Children.Add(tempGrid); var endButton = GetGamingButton("End Turn", nameof(SorryMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(SorryMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(SorryMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(SorryMainViewModel.Status)); tempStack.Children.Add(firstInfo.GetContent); AddVerticalLabelGroup("Card Details", nameof(SorryMainViewModel.CardDetails), tempStack); tempStack.Children.Add(endButton); //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 SorryMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); register.RegisterControl(_board.ThisElement, ""); graphicsCP.LinkBoard(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(SorryMainViewModel.RestoreScreen)); } var endButton = GetGamingButton("End Turn", nameof(SorryMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(SorryMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(SorryMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(SorryMainViewModel.Status)); mainStack.Children.Add(_board); mainStack.Children.Add(endButton); mainStack.Children.Add(firstInfo.GetContent); AddVerticalLabelGroup("Card Details", nameof(SorryMainViewModel.CardDetails), mainStack); 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; }
//something else has to register network classes because its unknown at this point. public static void RegisterNonSavedClasses <V>(this IGamePackageRegister thisContainer) { //thisContainer.RegisterSingleton<ListContainer, ListContainer>(); //maybe try it here now. thisContainer.RegisterSingleton <IPlayOrder, PlayOrderClass>(); Assembly thisAssembly = Assembly.GetAssembly(typeof(V)) !; CustomBasicList <Type> thisList = thisAssembly.GetTypes().Where(items => items.HasAttribute <SingletonGameAttribute>()).ToCustomBasicList(); thisList.ForEach(items => { thisContainer.RegisterSingleton(items); }); thisList = thisAssembly.GetTypes().Where(items => items.HasAttribute <InstanceGameAttribute>()).ToCustomBasicList(); thisList.ForEach(items => { thisContainer.RegisterInstanceType(items); }); }
private readonly TrainStationWPF _trainG = new TrainStationWPF(); //has to be new because of linking issues. public DominosMexicanTrainMainView(IEventAggregator aggregator, TestOptions test, DominosMexicanTrainVMData model, IGamePackageRegister register, TrainStationGraphicsCP graphics ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); register.RegisterControl(_trainG.Element, ""); graphics.LinkBoard(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(DominosMexicanTrainMainViewModel.RestoreScreen) }; } _bone = new BoneYardWPF <MexicanDomino, ts, DominosWPF <MexicanDomino>, DominosBasicShuffler <MexicanDomino> >(); _playerHandWPF = new BaseHandWPF <MexicanDomino, ts, DominosWPF <MexicanDomino> >(); _score = new ScoreBoardWPF(); _playerTrain = new BaseHandWPF <MexicanDomino, ts, DominosWPF <MexicanDomino> >(); _bone.Height = 500; _bone.Width = 1050; //can adjust as needed. mainStack.Children.Add(_playerHandWPF); Grid otherGrid = new Grid(); AddLeftOverColumn(otherGrid, 1); AddAutoColumns(otherGrid, 1); mainStack.Children.Add(otherGrid); StackPanel finalStack = new StackPanel(); AddControlToGrid(otherGrid, finalStack, 0, 0); _trainG.Margin = new Thickness(5, 5, 5, 5); _trainG.HorizontalAlignment = HorizontalAlignment.Left; _trainG.VerticalAlignment = VerticalAlignment.Top; AddControlToGrid(otherGrid, _trainG, 0, 1); finalStack.Children.Add(_bone); _playerTrain.HorizontalAlignment = HorizontalAlignment.Left; finalStack.Children.Add(_playerTrain); StackPanel tempstack = new StackPanel(); tempstack.Orientation = Orientation.Horizontal; finalStack.Children.Add(tempstack); Button endbutton = GetGamingButton("End Turn", nameof(DominosMexicanTrainMainViewModel.EndTurnAsync)); endbutton.HorizontalAlignment = HorizontalAlignment.Left; tempstack.Children.Add(endbutton); Button thisButton = GetGamingButton("Longest Train", nameof(DominosMexicanTrainMainViewModel.LongestTrain)); tempstack.Children.Add(thisButton); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(DominosMexicanTrainMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(DominosMexicanTrainMainViewModel.Status)); _score.AddColumn("Dominos Left", true, nameof(DominosMexicanTrainPlayerItem.ObjectCount)); _score.AddColumn("Total Score", true, nameof(DominosMexicanTrainPlayerItem.TotalScore)); _score.AddColumn("Previous Score", true, nameof(DominosMexicanTrainPlayerItem.PreviousScore)); _score.AddColumn("# Previous", true, nameof(DominosMexicanTrainPlayerItem.PreviousLeft)); finalStack.Children.Add(_score); finalStack.Children.Add(firstInfo.GetContent); 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; //hopefully this is still it (?) }
public XactikaMainView(IEventAggregator aggregator, TestOptions test, XactikaVMData model, IGamePackageResolver resolver, IGamePackageRegister register, StatsBoardCP boardCP ) { _aggregator = aggregator; _model = model; _resolver = resolver; _aggregator.Subscribe(this); _shape1 = new ChooseShapeXF(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <XactikaCardInformation, XactikaGraphicsCP, CardGraphicsXF>(); _trick1 = new SeveralPlayersTrickXF <EnumShapes, XactikaCardInformation, XactikaGraphicsCP, CardGraphicsXF, XactikaPlayerItem>(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(XactikaMainViewModel.RestoreScreen)); } register.RegisterControl(_stats1.Element, "main"); boardCP.LinkBoard(); _score.AddColumn("Cards Left", false, nameof(XactikaPlayerItem.ObjectCount)); //very common. _score.AddColumn("Bid Amount", false, nameof(XactikaPlayerItem.BidAmount)); _score.AddColumn("Tricks Won", false, nameof(XactikaPlayerItem.TricksWon)); _score.AddColumn("Current Score", false, nameof(XactikaPlayerItem.CurrentScore)); _score.AddColumn("Total Score", false, nameof(XactikaPlayerItem.TotalScore)); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(XactikaMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(XactikaMainViewModel.Status)); firstInfo.AddRow("Round", nameof(XactikaMainViewModel.RoundNumber)); firstInfo.AddRow("Mode", nameof(XactikaMainViewModel.GameModeText)); StackLayout shapeStack = new StackLayout(); shapeStack.Children.Add(_shape1); ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(XactikaMainViewModel.ShapeScreen)); parent.HorizontalOptions = LayoutOptions.Start; parent.VerticalOptions = LayoutOptions.Start; shapeStack.Children.Add(parent); Grid tempGrid = new Grid(); AddAutoRows(tempGrid, 1); AddLeftOverColumn(tempGrid, 1); AddAutoColumns(tempGrid, 2); StackLayout tempStack = new StackLayout(); tempStack.Orientation = StackOrientation.Horizontal; tempStack.Children.Add(_trick1); tempStack.Children.Add(shapeStack); AddControlToGrid(tempGrid, tempStack, 0, 0); parent = new ParentSingleUIContainer(nameof(XactikaMainViewModel.BidScreen)); AddControlToGrid(tempGrid, parent, 0, 0); // if one is visible, then the other is not AddControlToGrid(tempGrid, _stats1, 0, 2); AddControlToGrid(tempGrid, _score, 0, 1); //problem is scoreboard. Grid finalGrid = new Grid(); AddLeftOverRow(finalGrid, 1); AddLeftOverRow(finalGrid, 1); AddControlToGrid(finalGrid, tempGrid, 0, 0); AddControlToGrid(finalGrid, mainStack, 1, 0); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(firstInfo.GetContent); //tempGrid.BackgroundColor = Color.Red; if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = finalGrid; }
public BackgammonMainView(IEventAggregator aggregator, TestOptions test, BackgammonVMData model, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); register.RegisterControl(_board.ThisElement, "main"); graphicsCP.LinkBoard(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(BackgammonMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _diceControl = new DiceListControlXF <SimpleDice>(); otherStack.Children.Add(_board); Grid tempGrid = new Grid(); AddLeftOverRow(tempGrid, 5); AddLeftOverRow(tempGrid, 1); AddControlToGrid(tempGrid, _diceControl, 1, 0); otherStack.Children.Add(tempGrid); StackLayout finalStack = new StackLayout(); StackLayout tempStack = new StackLayout(); tempStack.Orientation = StackOrientation.Horizontal; var endButton = GetSmallerButton("End Turn", nameof(BackgammonMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; tempStack.Children.Add(endButton); Button other = GetSmallerButton("Undo All Moves", nameof(BackgammonMainViewModel.UndoMoveAsync)); tempStack.Children.Add(other); mainStack.Children.Add(otherStack); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); 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)); finalStack.Children.Add(tempStack); AddControlToGrid(tempGrid, finalStack, 0, 0); finalStack.Children.Add(firstInfo.GetContent); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public AggravationMainView(IEventAggregator aggregator, TestOptions test, AggravationVMData model, AggravationGameContainer gameContainer, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _gameContainer = gameContainer; _aggregator.Subscribe(this); register.RegisterControl(_board.ThisElement, ""); graphicsCP.LinkBoard(); _ourPiece = new MarblePiecesWPF <EnumColorChoice>(); _ourPiece.Width = 80; _ourPiece.Height = 80; _ourPiece.Init(); //i think. StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(AggravationMainViewModel.RestoreScreen) }; } Grid tempGrid = new Grid(); mainStack.Children.Add(tempGrid); var thisRoll = GetGamingButton("Roll Dice", nameof(AggravationMainViewModel.RollDiceAsync)); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; _diceControl = new DiceListControlWPF <SimpleDice>(); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(AggravationMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(AggravationMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(AggravationMainViewModel.Status)); //if we need to put to main, just change to main (?) StackPanel firstStack = new StackPanel(); firstStack.Margin = new Thickness(3, 3, 3, 3); firstStack.Children.Add(firstInfo.GetContent); firstStack.Children.Add(_ourPiece); otherStack.Children.Add(thisRoll); otherStack.Children.Add(_diceControl); firstStack.Children.Add(otherStack); tempGrid.Children.Add(firstStack); tempGrid.Children.Add(_board); 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 ChineseCheckersMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP tempBoard, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(ChineseCheckersMainViewModel.RestoreScreen) }; } register.RegisterControl(_board.ThisElement, "main"); tempBoard.LinkBoard(); //i think var endButton = GetGamingButton("End Turn", nameof(ChineseCheckersMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(ChineseCheckersMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(ChineseCheckersMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(ChineseCheckersMainViewModel.Status)); _board.Margin = new Thickness(-10, 0, 0, 0); _board.HorizontalAlignment = HorizontalAlignment.Left; _board.VerticalAlignment = VerticalAlignment.Top; Grid tempGrid = new Grid(); AddPixelColumn(tempGrid, 300); AddAutoColumns(tempGrid, 1); StackPanel tempStack = new StackPanel(); tempStack.Children.Add(endButton); tempStack.Children.Add(firstInfo.GetContent); AddControlToGrid(tempGrid, tempStack, 0, 0); AddControlToGrid(tempGrid, _board, 0, 1); mainStack.Children.Add(tempGrid); 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 ConnectTheDotsMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); register.RegisterControl(_board.Element, ""); graphicsCP.LinkBoard(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(ConnectTheDotsMainViewModel.RestoreScreen) }; } _score = new ScoreBoardWPF(); _score.AddColumn("Score", true, nameof(ConnectTheDotsPlayerItem.Score)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(ConnectTheDotsMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(ConnectTheDotsMainViewModel.Status)); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_board); mainStack.Children.Add(otherStack); StackPanel finalStack = new StackPanel(); finalStack.Children.Add(firstInfo.GetContent); finalStack.Children.Add(_score); otherStack.Children.Add(finalStack); 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 ClueBoardGameMainView(IEventAggregator aggregator, TestOptions test, ClueBoardGameVMData model, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register, ClueBoardGameMainGameClass mainGame, ClueBoardGameGameContainer gameContainer ) { _mainGame = mainGame; _gameContainer = gameContainer; _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); register.RegisterControl(_board.ThisElement, ""); graphicsCP.LinkBoard(); _piece = new PawnPiecesXF <EnumColorChoice>(); _piece.HeightRequest = 80; _piece.WidthRequest = 80; _piece.Init(); _pile = new BasePileXF <CardInfo, CardCP, CardXF>(); _hand = new BaseHandXF <CardInfo, CardCP, CardXF>(); _detective = new DetectiveNotebookXF(); _prediction = new PredictionAccusationXF(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(ClueBoardGameMainViewModel.RestoreScreen)); } _predictionButton = GetSmallerButton("Predict", nameof(ClueBoardGameMainViewModel.MakePredictionAsync)); _accusationButton = GetSmallerButton("Accusation", nameof(ClueBoardGameMainViewModel.MakeAccusationAsync)); StackLayout firstStack = new StackLayout(); firstStack.Orientation = StackOrientation.Horizontal; firstStack.Children.Add(_board); firstStack.Children.Add(_piece); mainStack.Children.Add(firstStack); Grid tempGrid = new Grid(); AddLeftOverColumn(tempGrid, 50); AddLeftOverColumn(tempGrid, 50); AddAutoColumns(tempGrid, 1); mainStack.Children.Add(tempGrid); AddControlToGrid(tempGrid, _prediction, 0, 0); _board.HorizontalOptions = LayoutOptions.Start; _board.VerticalOptions = LayoutOptions.Start; Label label = new Label(); label.FontSize = 30; label.TextColor = Color.White; label.FontAttributes = FontAttributes.Bold; label.SetBinding(Label.TextProperty, new Binding(nameof(ClueBoardGameMainViewModel.LeftToMove))); StackLayout tempStack = new StackLayout(); var thisRoll = GetSmallerButton("Roll Dice", nameof(ClueBoardGameMainViewModel.RollDiceAsync)); _diceControl = new DiceListControlXF <SimpleDice>(); var endButton = GetSmallerButton("End Turn", nameof(ClueBoardGameMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; tempStack.Children.Add(label); tempStack.Children.Add(thisRoll); tempStack.Children.Add(endButton); tempStack.Children.Add(_pile); tempStack.Children.Add(_diceControl); AddControlToGrid(tempGrid, _detective, 0, 1); AddControlToGrid(tempGrid, tempStack, 0, 2); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(ClueBoardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(ClueBoardGameMainViewModel.Instructions)); _details = firstInfo.GetContent; 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 AggravationMainView(IEventAggregator aggregator, TestOptions test, AggravationVMData model, AggravationGameContainer gameContainer, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _gameContainer = gameContainer; _aggregator.Subscribe(this); register.RegisterControl(_board.ThisElement, ""); graphicsCP.LinkBoard(); _ourPiece = new MarblePiecesXF <EnumColorChoice>(); _ourPiece.Margin = new Thickness(3, 3, 3, 3); _ourPiece.HorizontalOptions = LayoutOptions.Start; _ourPiece.VerticalOptions = LayoutOptions.Start; _ourPiece.Init(); //i think. StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(AggravationMainViewModel.RestoreScreen)); } Button thisRoll; if (ScreenUsed == EnumScreen.SmallPhone) { thisRoll = GetSmallerButton("Roll Dice", nameof(AggravationMainViewModel.RollDiceAsync)); } else { thisRoll = GetGamingButton("Roll Dice", nameof(AggravationMainViewModel.RollDiceAsync)); thisRoll.FontSize += 20; } thisRoll.Margin = new Thickness(3, 3, 0, 0); thisRoll.HorizontalOptions = LayoutOptions.Start; thisRoll.VerticalOptions = LayoutOptions.Start; StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _diceControl = new DiceListControlXF <SimpleDice>(); otherStack.Spacing = 2; var endButton = GetGamingButton("End Turn", nameof(AggravationMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(AggravationMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(AggravationMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(AggravationMainViewModel.Status)); otherStack.Children.Add(_ourPiece); otherStack.Children.Add(thisRoll); otherStack.Children.Add(_diceControl); mainStack.Children.Add(otherStack); mainStack.Children.Add(_board); mainStack.Children.Add(firstInfo.GetContent); 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 ChineseCheckersMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP tempBoard, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(ChineseCheckersMainViewModel.RestoreScreen)); } register.RegisterControl(_board.ThisElement, "main"); tempBoard.LinkBoard(); //i think _board.HorizontalOptions = LayoutOptions.Start; _board.VerticalOptions = LayoutOptions.Start; mainStack.Children.Add(_board); var endButton = GetGamingButton("End Turn", nameof(ChineseCheckersMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(ChineseCheckersMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(ChineseCheckersMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(ChineseCheckersMainViewModel.Status)); mainStack.Children.Add(endButton); mainStack.Children.Add(firstInfo.GetContent); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public ClueBoardGameMainView(IEventAggregator aggregator, TestOptions test, ClueBoardGameVMData model, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register, ClueBoardGameMainGameClass mainGame, ClueBoardGameGameContainer gameContainer ) { _mainGame = mainGame; _gameContainer = gameContainer; _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); register.RegisterControl(_board.ThisElement, ""); graphicsCP.LinkBoard(); _piece = new PawnPiecesWPF <EnumColorChoice>(); _piece.Height = 60; _piece.Width = 60; _piece.Init(); _pile = new BasePileWPF <CardInfo, CardCP, CardWPF>(); _hand = new BaseHandWPF <CardInfo, CardCP, CardWPF>(); _detective = new DetectiveNotebookWPF(); _prediction = new PredictionAccusationWPF(); StackPanel mainStack = new StackPanel(); StackPanel finalStack = new StackPanel() { Orientation = Orientation.Horizontal }; ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(ClueBoardGameMainViewModel.RestoreScreen) }; } var thisRoll = GetGamingButton("Roll Dice", nameof(ClueBoardGameMainViewModel.RollDiceAsync)); var preButton = GetGamingButton("Predict", nameof(ClueBoardGameMainViewModel.MakePredictionAsync)); var accusationButton = GetGamingButton("Accusation", nameof(ClueBoardGameMainViewModel.MakeAccusationAsync)); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; _diceControl = new DiceListControlWPF <SimpleDice>(); var endButton = GetGamingButton("End Turn", nameof(ClueBoardGameMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(ClueBoardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(ClueBoardGameMainViewModel.Status)); StackPanel firstRowStack = new StackPanel(); firstRowStack.Children.Add(_board); otherStack.Children.Add(_piece); otherStack.Children.Add(firstInfo.GetContent); firstRowStack.Children.Add(otherStack); finalStack.Children.Add(firstRowStack); StackPanel secondRowStack = new StackPanel(); finalStack.Children.Add(secondRowStack); StackPanel thirdRowStack = new StackPanel(); finalStack.Children.Add(thirdRowStack); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_hand); otherStack.Children.Add(_pile); secondRowStack.Children.Add(otherStack); _prediction.Margin = new Thickness(0, 0, 0, 30); secondRowStack.Children.Add(_prediction); secondRowStack.Children.Add(_detective); AddVerticalLabelGroup("Instructions", nameof(ClueBoardGameMainViewModel.Instructions), thirdRowStack); otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_diceControl); TextBlock label = new TextBlock(); label.FontSize = 100; label.Foreground = Brushes.White; label.FontWeight = FontWeights.Bold; label.SetBinding(TextBlock.TextProperty, new Binding(nameof(ClueBoardGameMainViewModel.LeftToMove))); otherStack.Children.Add(label); thirdRowStack.Children.Add(otherStack); thirdRowStack.Children.Add(thisRoll); thirdRowStack.Children.Add(preButton); thirdRowStack.Children.Add(accusationButton); thirdRowStack.Children.Add(endButton); var nextInfo = new SimpleLabelGrid(); nextInfo.AddRow("Room", nameof(ClueBoardGameMainViewModel.CurrentRoomName)); nextInfo.AddRow("Character", nameof(ClueBoardGameMainViewModel.CurrentCharacterName)); nextInfo.AddRow("Weapon", nameof(ClueBoardGameMainViewModel.CurrentWeaponName)); thirdRowStack.Children.Add(nextInfo.GetContent); mainStack.Children.Add(finalStack); 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 LifeBoardGameMainView(IEventAggregator aggregator, IGamePackageRegister register, GameBoardGraphicsCP graphicsCP ) { _aggregator = aggregator; _aggregator.Subscribe(this); Grid grid = new Grid(); AddAutoColumns(grid, 1); AddLeftOverColumn(grid, 70); AddLeftOverColumn(grid, 30);//i think split 50/50 is fine. //ParentSingleUIContainer? restoreP = null; //risk no testing. //because we don't have restore this time. //if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) //{ // restoreP = new ParentSingleUIContainer(nameof(LifeBoardGameMainViewModel.RestoreScreen)); //} StackLayout stack = new StackLayout(); stack.Margin = new Thickness(3); AddVerticalLabelGroup("Space Details", nameof(LifeBoardGameMainViewModel.GameDetails), stack); AddControlToGrid(grid, stack, 0, 2); //on tablets will be different. GameBoardXF gameBoard = new GameBoardXF(aggregator); gameBoard.VerticalOptions = LayoutOptions.Start; register.RegisterControl(gameBoard.Element, ""); graphicsCP.LinkBoard(); StackLayout finStack = new StackLayout(); finStack.Children.Add(gameBoard); AddControlToGrid(grid, finStack, 0, 0); var firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(LifeBoardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(LifeBoardGameMainViewModel.Instructions)); Grid temps = firstInfo.GetContent; temps.WidthRequest = gameBoard.WidthRequest; finStack.Children.Add(firstInfo.GetContent); gameBoard.Margin = new Thickness(3); stack = new StackLayout(); //everything else will go to this stack. stack.Margin = new Thickness(3); Type type = typeof(LifeBoardGameMainViewModel); CustomBasicList <string> list = type.GetProperties(x => x.Name.EndsWith("Screen") && x.Name != "MainScreen" && x.Name != "BoardScreen").Select(x => x.Name).ToCustomBasicList(); if (list.Count == 0) { throw new BasicBlankException("No screens found using reflection. Rethink"); } list.ForEach(x => { ParentSingleUIContainer middle = new ParentSingleUIContainer(x) { HorizontalOptions = LayoutOptions.Start //Margin = new Thickness(5) }; stack.Children.Add(middle); }); AddControlToGrid(grid, stack, 0, 1); //ParentSingleUIContainer board = new ParentSingleUIContainer(nameof(LifeBoardGameMainViewModel.BoardScreen)); //decided to attempt to use same format for desktop as for tablets. //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 = grid; }
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 PaydayMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register, PaydayGameContainer gameContainer, PaydayVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(PaydayMainViewModel.RestoreScreen)); } _aggregator = aggregator; _gameContainer = gameContainer; _model = model; _aggregator.Subscribe(this); _board = new GameBoardXF(); register.RegisterControl(_board.Element, "main"); graphicsCP.LinkBoard(); _score = new ScoreBoardXF(); _score.AddColumn("Money", true, nameof(PaydayPlayerItem.MoneyHas), useCurrency: true, rightMargin: 10); _score.AddColumn("Loans", true, nameof(PaydayPlayerItem.Loans), useCurrency: true, rightMargin: 10); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Main Turn", nameof(PaydayMainViewModel.NormalTurn)); firstInfo.AddRow("Other Turn", nameof(PaydayMainViewModel.OtherLabel)); firstInfo.AddRow("Progress", nameof(PaydayMainViewModel.MonthLabel)); firstInfo.AddRow("Status", nameof(PaydayMainViewModel.Status)); var firstContent = firstInfo.GetContent; StackLayout tempStack = new StackLayout(); AddVerticalLabelGroup("Instructions", nameof(PaydayMainViewModel.Instructions), tempStack); ScrollView tempScroll = new ScrollView(); tempScroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Never; tempScroll.Content = tempStack; StackLayout firstStack = new StackLayout(); firstStack.Orientation = StackOrientation.Horizontal; firstStack.Children.Add(_board); mainStack.Children.Add(firstStack); firstStack.Margin = new Thickness(3, 3, 3, 0); Grid rightGrid = new Grid(); //this is very iffy. lots of adjustments may be needed. //it only works for large tablets now anyways. firstStack.Children.Add(rightGrid); AddPixelRow(rightGrid, 225); AddLeftOverRow(rightGrid, 1); AddAutoColumns(rightGrid, 1); Grid grid1 = new Grid(); AddControlToGrid(rightGrid, grid1, 0, 0); AddAutoRows(grid1, 1); AddPixelColumn(grid1, 200); AddPixelColumn(grid1, 130); AddPixelColumn(grid1, 250); //AddLeftOverColumn(grid1, 1); StackLayout stack1 = new StackLayout(); AddControlToGrid(grid1, stack1, 0, 0); ParentSingleUIContainer mailPile = new ParentSingleUIContainer(nameof(PaydayMainViewModel.MailPileScreen)); ParentSingleUIContainer dealPile = new ParentSingleUIContainer(nameof(PaydayMainViewModel.DealPileScreen)); stack1.Children.Add(mailPile); stack1.Children.Add(dealPile); ParentSingleUIContainer roller = new ParentSingleUIContainer(nameof(PaydayMainViewModel.RollerScreen)); stack1.Children.Add(roller); AddControlToGrid(grid1, tempScroll, 0, 1); // instructions on card //StackLayout endStack = new StackLayout(); //endStack.Children.Add(_score); //endStack.Children.Add(firstContent); AddControlToGrid(grid1, _score, 0, 2); //AddControlToGrid(grid1, firstContent, 0, 2); //AddControlToGrid(grid1, _score, 0, 3); Grid grid2 = new Grid(); AddControlToGrid(rightGrid, grid2, 1, 0); AddAutoRows(grid2, 1); AddAutoColumns(grid2, 1); AddLeftOverColumn(grid2, 1); StackLayout finalStack = new StackLayout(); _dealList = new BaseHandXF <DealCard, CardGraphicsCP, DealCardXF>(); _dealList.HeightRequest = 500; _dealList.HandType = HandObservable <DealCard> .EnumHandList.Vertical; _dealList.HorizontalOptions = LayoutOptions.Start; finalStack.Children.Add(_dealList); AddControlToGrid(grid2, finalStack, 0, 0); _currentPiece = new PawnPiecesXF <EnumColorChoice>(); _currentPiece.IsVisible = false; // until proven to need it _currentPiece.WidthRequest = 70; _currentPiece.HeightRequest = 70; _currentPiece.Margin = new Thickness(5, 5, 5, 5); _currentPiece.Init(); finalStack.Children.Add(_currentPiece); ParentSingleUIContainer mailList = new ParentSingleUIContainer(nameof(PaydayMainViewModel.MailListScreen)); AddControlToGrid(grid2, mailList, 0, 1); ParentSingleUIContainer extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.DealOrBuyScreen)); AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.BuyDealScreen)); AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.ChooseDealScreen)); AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.LotteryScreen)); AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.PlayerScreen)); AddControlToGrid(grid2, extras, 0, 1); //_score.Margin = new Thickness(0, -150, 0, 0); mainStack.Children.Add(firstContent); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public PassOutDiceGameMainView(IEventAggregator aggregator, TestOptions test, PassOutDiceGameVMData model, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(PassOutDiceGameMainViewModel.RestoreScreen)); } register.RegisterControl(_board.ThisElement, ""); //hopefully okay. graphicsCP.LinkBoard(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _diceControl = new DiceListControlXF <SimpleDice>(); otherStack.Children.Add(_diceControl); Grid grid = new Grid(); AddLeftOverColumn(grid, 1); AddAutoColumns(grid, 1); AddControlToGrid(grid, _board, 0, 1); AddControlToGrid(grid, mainStack, 0, 0); StackLayout finalStack = new StackLayout(); otherStack.Children.Add(finalStack); var endButton = GetGamingButton("End Turn", nameof(PassOutDiceGameMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; otherStack.Children.Add(endButton); mainStack.Children.Add(otherStack); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(PassOutDiceGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(PassOutDiceGameMainViewModel.Status)); finalStack.Children.Add(firstInfo.GetContent); finalStack.Children.Add(endButton); finalStack.Children.Add(_diceControl); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. finalStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = grid; }
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 ConnectTheDotsMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); register.RegisterControl(_board.Element, ""); graphicsCP.LinkBoard(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(ConnectTheDotsMainViewModel.RestoreScreen)); } _score = new ScoreBoardXF(); _score.AddColumn("Score", true, nameof(ConnectTheDotsPlayerItem.Score)); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(ConnectTheDotsMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(ConnectTheDotsMainViewModel.Status)); mainStack.Children.Add(_board); mainStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(_score); 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; }