public void Init(SolitairePilesCP mod, BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> > thisMain) { _thisMod = mod; if (_thisMod.PileList.Count != 8) { throw new BasicBlankException("Must have 8 piles"); } _thisGrid = new Grid(); AddAutoRows(_thisGrid, 4); AddLeftOverColumn(_thisGrid, 40); AddAutoColumns(_thisGrid, 1); AddLeftOverColumn(_thisGrid, 40); AddControlToGrid(_thisGrid, thisMain, 0, 1); Grid.SetRowSpan(thisMain, 4); //all 4 for main. int x; for (x = 1; x <= 4; x++) { var ThisSingle = new SinglePileUI(); var ThisPile = _thisMod.PileList[x - 1]; ThisSingle.Init(ThisPile, _thisMod); // the first 4 are reversed AddControlToGrid(_thisGrid, ThisSingle, x - 1, 0); } for (x = 5; x <= 8; x++) { var ThisSingle = new SinglePileUI(); var ThisPile = _thisMod.PileList[x - 1]; ThisSingle.Init(ThisPile, _thisMod); //no reverse anymore. ThisSingle.Margin = new Thickness(20, 0, 0, 0); AddControlToGrid(_thisGrid, ThisSingle, x - 5, 2); } Content = _thisGrid; }
public BakersDozenSolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); StackLayout stack = new StackLayout(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(10, 5, 5, 5); stack.Children.Add(otherStack); var autoBut = GetGamingButton("Auto Make Move", nameof(BakersDozenSolitaireMainViewModel.AutoMoveAsync)); autoBut.HorizontalOptions = LayoutOptions.Start; //not sure where to place it. //it probably varies from game to game. var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(BakersDozenSolitaireMainViewModel.Score)); var tempGrid = scoresAlone.GetContent; StackLayout finalStack = new StackLayout(); otherStack.Children.Add(finalStack); otherStack.Children.Add(_main); finalStack.Children.Add(tempGrid); finalStack.Children.Add(autoBut); _waste = new SolitairePilesXF(); stack.Children.Add(_waste); Content = stack; //if not doing this, rethink. }
public void Init(BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> > main) { WastePiles thisWaste = Resolve <WastePiles>(); if (thisWaste.Discards !.PileList !.Count != 8) { throw new BasicBlankException("There must be 8 piles total"); } _thisGrid = new Grid(); Margin = new Thickness(10, 5, 5, 5); AddAutoColumns(_thisGrid, 4); AddAutoRows(_thisGrid, 3); var thisList = thisWaste.Discards.PileList.Take(4).ToCustomBasicList(); main.Margin = new Thickness(0, 0, 0, 0); CustomMain thisMain = Resolve <CustomMain>(); main.Init(thisMain.Piles, ts.TagUsed); LoadList(0, thisList, thisWaste); AddControlToGrid(_thisGrid, main, 1, 0); Grid.SetColumnSpan(main, 4); thisList = thisWaste.Discards.PileList.Skip(4).ToCustomBasicList(); LoadList(2, thisList, thisWaste); Content = _thisGrid; }
public BeleaguredCastleMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); StackLayout stack = new StackLayout(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(10, 5, 5, 5); var autoBut = GetGamingButton("Auto Make Move", nameof(BeleaguredCastleMainViewModel.AutoMoveAsync)); autoBut.HorizontalOptions = LayoutOptions.Center; autoBut.VerticalOptions = LayoutOptions.Center; var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(BeleaguredCastleMainViewModel.Score)); var tempGrid = scoresAlone.GetContent; _waste = new CustomWasteUI(); stack.Children.Add(_waste); stack.Children.Add(otherStack); otherStack.Children.Add(tempGrid); otherStack.Children.Add(autoBut); Content = stack; //if not doing this, rethink. }
public HeapSolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); StackLayout stack = new StackLayout(); _mainPile = new BasicMultiplePilesXF <HeapSolitaireCardInfo, ts, DeckOfCardsXF <HeapSolitaireCardInfo> >(); _wastePile = new CustomWasteUI(); _mainPile.Margin = new Thickness(5); stack.Children.Add(_mainPile); StackLayout others = new StackLayout() { Orientation = StackOrientation.Horizontal }; stack.Children.Add(others); others.Children.Add(_wastePile); StackLayout finalStack = new StackLayout(); SimpleLabelGridXF scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(HeapSolitaireMainViewModel.Score)); finalStack.Children.Add(scoresAlone.GetContent); others.Children.Add(finalStack); Content = stack; //if not doing this, rethink. }
public PersianSolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); StackLayout stack = new StackLayout(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(10, 5, 5, 5); var autoBut = GetSmallerButton("Auto Make Move", nameof(PersianSolitaireMainViewModel.AutoMoveAsync)); var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(PersianSolitaireMainViewModel.Score)); scoresAlone.AddRow("Deal", nameof(PersianSolitaireMainViewModel.DealNumber)); var finalButton = GetSmallerButton("New Deal", nameof(PersianSolitaireMainViewModel.NewDeal)); var tempGrid = scoresAlone.GetContent; _waste = new SolitairePilesXF(); otherStack.Children.Add(_waste); otherStack.Children.Add(_main); stack.Children.Add(tempGrid); stack.Children.Add(autoBut); stack.Children.Add(finalButton); otherStack.Children.Add(stack); Content = otherStack; //if not doing this, rethink. }
public AlternationSolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _deckGPile.HorizontalOptions = LayoutOptions.Start; _deckGPile.VerticalOptions = LayoutOptions.Start; _discardGPile = new BasePileXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _discardGPile.Margin = new Thickness(5); _discardGPile.HorizontalOptions = LayoutOptions.Start; _discardGPile.VerticalOptions = LayoutOptions.Start; StackLayout stack = new StackLayout(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(100, 5, 5, 5); stack.Children.Add(otherStack); var autoBut = GetGamingButton("Auto Make Move", nameof(AlternationSolitaireMainViewModel.AutoMoveAsync)); //not sure where to place it. //it probably varies from game to game. var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(AlternationSolitaireMainViewModel.Score)); var tempGrid = scoresAlone.GetContent; //not sure where to place. _waste = new SolitairePilesXF(); //not sure where to place //needs to init. however, needs a waste viewmodel to hook to. the interface does not require to necessarily use it. //sometimes its more discard piles. StackLayout tempStack = new StackLayout(); otherStack.Children.Add(tempStack); tempStack.Children.Add(tempGrid); tempStack.Children.Add(autoBut); otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; stack.Children.Add(otherStack); otherStack.Children.Add(_waste); otherStack.Children.Add(_main); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); Content = stack; //if not doing this, rethink. }
public VegasSolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _deckGPile.HorizontalOptions = LayoutOptions.Start; _deckGPile.VerticalOptions = LayoutOptions.Start; _discardGPile = new BasePileXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _discardGPile.Margin = new Thickness(5); _discardGPile.HorizontalOptions = LayoutOptions.Start; _discardGPile.VerticalOptions = LayoutOptions.Start; StackLayout stack = new StackLayout(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(10, 5, 5, 5); otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); var autoBut = GetSmallerButton("Auto Make Move", nameof(VegasSolitaireMainViewModel.AutoMoveAsync)); var scoresAlone = new SimpleLabelGridXF(); var thisCon = new CurrencyConverter(); scoresAlone.AddRow("Money", nameof(VegasSolitaireMainViewModel.Money), thisCon); var tempGrid = scoresAlone.GetContent; _waste = new SolitairePilesXF(); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); otherStack.Children.Add(_main); stack.Children.Add(otherStack); stack.Children.Add(_waste); Grid grid = new Grid(); AddAutoColumns(grid, 2); AddControlToGrid(grid, stack, 0, 0); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); stack = new StackLayout(); stack.Margin = new Thickness(20, 5, 5, 5); AddControlToGrid(grid, stack, 0, 1); stack.Children.Add(tempGrid); stack.Children.Add(autoBut); Content = grid; //if not doing this, rethink. }
public DemonSolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _deckGPile.HorizontalOptions = LayoutOptions.Start; _deckGPile.VerticalOptions = LayoutOptions.Start; _discardGPile = new BasePileXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _discardGPile.Margin = new Thickness(5); _discardGPile.HorizontalOptions = LayoutOptions.Start; _discardGPile.VerticalOptions = LayoutOptions.Start; StackLayout stack = new StackLayout(); _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(10, 5, 5, 5); var autoBut = GetGamingButton("Auto Make Move", nameof(DemonSolitaireMainViewModel.AutoMoveAsync)); var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(DemonSolitaireMainViewModel.Score)); scoresAlone.AddRow("Starting Number", nameof(DemonSolitaireMainViewModel.StartingNumber)); var tempGrid = scoresAlone.GetContent; tempGrid.WidthRequest = 150; _waste = new SolitairePilesXF(); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); _heel.HorizontalOptions = LayoutOptions.Start; _heel.VerticalOptions = LayoutOptions.Start; Grid grid = new Grid(); AddAutoColumns(grid, 3); AddAutoRows(grid, 2); AddControlToGrid(grid, _deckGPile, 0, 0); AddControlToGrid(grid, _discardGPile, 0, 1); AddControlToGrid(grid, _main, 0, 2); AddControlToGrid(grid, _heel, 1, 1); AddControlToGrid(grid, _waste, 1, 2); stack.Children.Add(tempGrid); AddControlToGrid(grid, stack, 1, 0); _heel.Margin = new Thickness(0, 5, 0, 0); _waste.Margin = new Thickness(0, 25, 0, 0); stack.Margin = new Thickness(0, 5, 5, 0); Content = grid; }
public CarpetSolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _deckGPile.HorizontalOptions = LayoutOptions.Start; _deckGPile.VerticalOptions = LayoutOptions.Start; _discardGPile = new BasePileXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _discardGPile.Margin = new Thickness(5); _discardGPile.HorizontalOptions = LayoutOptions.Start; _discardGPile.VerticalOptions = LayoutOptions.Start; StackLayout stack = new StackLayout(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(10, 5, 5, 5); stack.Children.Add(otherStack); var autoBut = GetGamingButton("Auto Make Move", nameof(CarpetSolitaireMainViewModel.AutoMoveAsync)); autoBut.HorizontalOptions = LayoutOptions.Start; autoBut.VerticalOptions = LayoutOptions.Start; var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(CarpetSolitaireMainViewModel.Score)); var tempGrid = scoresAlone.GetContent; tempGrid.WidthRequest = 50; //sometimes i am forced to do this _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); Grid grid = new Grid(); AddAutoColumns(grid, 2); stack.Children.Add(tempGrid); stack.Children.Add(autoBut); AddControlToGrid(grid, stack, 0, 0); stack = new StackLayout(); stack.Children.Add(_main); stack.Children.Add(_discard); AddControlToGrid(grid, stack, 0, 1); Content = grid; }
public EagleWingsSolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _deckGPile.HorizontalOptions = LayoutOptions.Start; _deckGPile.VerticalOptions = LayoutOptions.Start; _discardGPile = new BasePileXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _discardGPile.Margin = new Thickness(5); _discardGPile.HorizontalOptions = LayoutOptions.Start; _discardGPile.VerticalOptions = LayoutOptions.Start; StackLayout stack = new StackLayout(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(0, 5, 5, 5); stack.Children.Add(otherStack); var autoBut = GetSmallerButton("Auto Make Move", nameof(EagleWingsSolitaireMainViewModel.AutoMoveAsync)); var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(EagleWingsSolitaireMainViewModel.Score)); scoresAlone.AddRow("Starting Number", nameof(EagleWingsSolitaireMainViewModel.StartingNumber)); var tempGrid = scoresAlone.GetContent; _waste = new PlaneUI(); //_waste.Margin = new Thickness(30, 30, 0, 0); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); StackLayout tempStack = new StackLayout(); tempStack.Orientation = StackOrientation.Horizontal; stack.Children.Add(otherStack); stack.Children.Add(tempGrid); stack.Children.Add(autoBut); tempStack.Children.Add(stack); stack = new StackLayout(); stack.Children.Add(_main); stack.Children.Add(_waste); tempStack.Children.Add(stack); Content = tempStack; }
public PlayerPilesView(FlinchVMData model, FlinchGameContainer gameContainer, IEventAggregator aggregator) { StackLayout stack = new StackLayout() { Orientation = StackOrientation.Horizontal }; var player = gameContainer.PlayerList !.GetWhoPlayer(); _discardGraphics = new BasicMultiplePilesXF <FlinchCardInformation, FlinchGraphicsCP, CardGraphicsXF>(); _discardGraphics.Init(model.DiscardPiles !, ""); _discardGraphics.StartAnimationListener("discard" + player.NickName); stack.Children.Add(_discardGraphics); _stockGraphics = new BasicMultiplePilesXF <FlinchCardInformation, FlinchGraphicsCP, CardGraphicsXF>(); _stockGraphics.Init(model.StockPile !.StockFrame, ""); // i think _stockGraphics.StartAnimationListener("stock" + player.NickName); stack.Children.Add(_stockGraphics); _aggregator = aggregator; Content = stack; }
public ConcentrationMainView(IEventAggregator aggregator, TestOptions test, ConcentrationVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _board = new BasicMultiplePilesXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >(); _score = new ScoreBoardXF(); _score.AddColumn("Pairs", true, nameof(ConcentrationPlayerItem.Pairs)); //very common. StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(ConcentrationMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_board); mainStack.Children.Add(otherStack); _score.AddColumn("Cards Left", false, nameof(ConcentrationPlayerItem.ObjectCount)); //very common. SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(ConcentrationMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(ConcentrationMainViewModel.Status)); StackLayout finalStack = new StackLayout(); otherStack.Children.Add(finalStack); finalStack.Children.Add(firstInfo.GetContent); finalStack.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; }
public EightOffSolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); StackLayout stack = new StackLayout(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(10, 5, 5, 5); stack.Children.Add(otherStack); var autoBut = GetGamingButton("Auto Make Move", nameof(EightOffSolitaireMainViewModel.AutoMoveAsync)); var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(EightOffSolitaireMainViewModel.Score)); var tempGrid = scoresAlone.GetContent; _waste = new SolitairePilesXF(); var reserveButton = GetGamingButton("Reserve Card", nameof(EightOffSolitaireMainViewModel.AddToReserveAsync)); otherStack.Children.Add(_main); otherStack.Children.Add(_reserve); otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Margin = new Thickness(0, 5, 0, 0); stack.Children.Add(otherStack); StackLayout finalStack = new StackLayout(); otherStack.Children.Add(_waste); otherStack.Children.Add(finalStack); finalStack.Children.Add(reserveButton); finalStack.Children.Add(autoBut); finalStack.Children.Add(tempGrid); Content = stack; //if not doing this, rethink. }
public BlockElevenSolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(BlockElevenSolitaireMainViewModel.Score)); scoresAlone.AddRow("Cards Left", nameof(BlockElevenSolitaireMainViewModel.CardsLeft)); var tempGrid = scoresAlone.GetContent; _waste = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); otherStack.Children.Add(_waste); otherStack.Children.Add(tempGrid); Content = otherStack; //if not doing this, rethink. }
public CalculationSolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _deckGPile.HorizontalOptions = LayoutOptions.Start; _deckGPile.VerticalOptions = LayoutOptions.Start; StackLayout stack = new StackLayout(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(10, 5, 5, 5); var autoBut = GetGamingButton("Auto Make Move", nameof(CalculationSolitaireMainViewModel.AutoMoveAsync)); var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(CalculationSolitaireMainViewModel.Score)); var tempGrid = scoresAlone.GetContent; _waste = new SolitairePilesXF(); _waste.Margin = new Thickness(10, 10, 5, 5); _deckGPile.Margin = new Thickness(5, 5, 5, 5); stack.Children.Add(_deckGPile); stack.Children.Add(tempGrid); otherStack.Children.Add(stack); var thisGrid = new Grid(); AddAutoRows(thisGrid, 1); AddLeftOverRow(thisGrid, 1); AddControlToGrid(thisGrid, _main, 0, 0); AddControlToGrid(thisGrid, _waste, 1, 0); otherStack.Children.Add(thisGrid); Content = otherStack; //if not doing this, rethink. }
public SpiderSolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _deckGPile.HorizontalOptions = LayoutOptions.Start; _deckGPile.VerticalOptions = LayoutOptions.Start; StackLayout stack = new StackLayout(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(10, 5, 5, 5); var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(SpiderSolitaireMainViewModel.Score)); var tempGrid = scoresAlone.GetContent; _waste = new SolitairePilesXF(); _deckGPile.Margin = new Thickness(5, 5, 5, 5); stack.Margin = new Thickness(10, 5, 0, 0); otherStack.Children.Add(_waste); stack.Children.Add(tempGrid); stack.Children.Add(_deckGPile); otherStack.Children.Add(stack); stack = new StackLayout(); Button ends = GetGamingButton("End Game", nameof(SpiderSolitaireMainViewModel.EndGameAsync)); stack.Children.Add(ends); stack.Children.Add(_main); otherStack.Children.Add(stack); Content = otherStack; //if not doing this, rethink. }
public GrandfathersClockMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); StackLayout stack = new StackLayout(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(10, 5, 5, 5); var autoBut = GetSmallerButton("Auto Make Move", nameof(GrandfathersClockMainViewModel.AutoMoveAsync)); autoBut.HorizontalOptions = LayoutOptions.Start; autoBut.VerticalOptions = LayoutOptions.Start; var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(GrandfathersClockMainViewModel.Score)); var tempGrid = scoresAlone.GetContent; var thisWaste = new SolitairePilesXF(); _piles = thisWaste; var thisClock = new MainClockXF(); thisClock.Margin = new Thickness(0, 60, 0, 0); _clock = thisClock; Grid thisGrid = new Grid(); otherStack.Children.Add(thisGrid); otherStack.Children.Add(thisWaste); otherStack.Children.Add(tempGrid); stack.Children.Add(autoBut); thisGrid.Children.Add(stack); thisGrid.Children.Add(thisClock); Content = otherStack; }
public BisleySolitaireMainView(IEventAggregator aggregator) { _aggregator = aggregator; _aggregator.Subscribe(this); StackLayout stack = new StackLayout(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _main = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); _main.Margin = new Thickness(2, 5, 5, 5); _main.Spacing = 0; _discard = new BasicMultiplePilesXF <SolitaireCard, ts, DeckOfCardsXF <SolitaireCard> >(); var tempCard = new DeckOfCardsXF <SolitaireCard>(); tempCard.SendSize(ts.TagUsed, new SolitaireCard()); _discard.Margin = new Thickness(2, (tempCard.ObjectSize.Height * -1) - 15, 0, 0); stack.Children.Add(otherStack); var autoBut = GetGamingButton("Auto Make Move", nameof(BisleySolitaireMainViewModel.AutoMoveAsync)); var scoresAlone = new SimpleLabelGridXF(); scoresAlone.AddRow("Score", nameof(BisleySolitaireMainViewModel.Score)); var tempGrid = scoresAlone.GetContent; otherStack.Children.Add(autoBut); otherStack.Children.Add(tempGrid); stack.Children.Add(_main); stack.Children.Add(_discard); Content = stack; //if not doing this, rethink. }
public MilkRunMainView(IEventAggregator aggregator, TestOptions test, MilkRunVMData model, MilkRunGameContainer gameContainer ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _gameContainer = gameContainer; _deckGPile = new BaseDeckXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>(); _discardGPile = new BasePileXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>(); _playerHandWPF = new BaseHandXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>(); _opponentChocolateDeliveries = new Label(); _opponentChocolatePiles = new BasicMultiplePilesXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>(); _opponentStrawberryDeliveries = new Label(); _opponentStrawberryPiles = new BasicMultiplePilesXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>(); _yourChocolateDeliveries = new Label(); _yourChocolatePiles = new BasicMultiplePilesXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>(); _yourStrawberryDeliveries = new Label(); _yourStrawberryPiles = new BasicMultiplePilesXF <MilkRunCardInformation, MilkRunGraphicsCP, CardGraphicsXF>(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(MilkRunMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. AddPlayArea(otherStack); mainStack.Children.Add(otherStack); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(MilkRunMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(MilkRunMainViewModel.Status)); StackLayout newStack = new StackLayout(); mainStack.Children.Add(newStack); newStack.HorizontalOptions = LayoutOptions.Center; newStack.Margin = new Thickness(0, 10, 0, 0); newStack.Children.Add(_playerHandWPF); newStack.Children.Add(firstInfo.GetContent); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
private void SetUpTeamPiles() { _mainGame !.SingleInfo = _mainGame.PlayerList !.GetSelf(); if (_mainGame.SingleInfo.MainHandList.Any(items => items.CompleteCategory == EnumCompleteCategories.None)) { throw new BasicBlankException("Cannot have category of none. Rethink"); } _pileGrid !.Children.Clear(); int x = 0; _gameContainer.TeamList.ForEach(thisTeam => { x++; Grid tempGrid = new Grid(); tempGrid.Margin = new Thickness(0, 0, 0, 5); Label ThisLabel = new Label(); if (ScreenUsed == EnumScreen.SmallPhone) { ThisLabel.FontSize = 8; AddPixelRow(tempGrid, 12); AddPixelRow(tempGrid, 68); } else { AddAutoRows(tempGrid, 1); AddLeftOverRow(tempGrid, 1); if (ScreenUsed == EnumScreen.SmallTablet) { ThisLabel.FontSize = 12; } else { ThisLabel.FontSize = 20; } } AddAutoColumns(tempGrid, 2); ThisLabel.Text = thisTeam.Text; ThisLabel.TextColor = Color.Aqua; ThisLabel.FontAttributes = FontAttributes.Bold; AddControlToGrid(tempGrid, ThisLabel, 0, 0); ThisLabel.HorizontalOptions = LayoutOptions.Center; // try this BasicMultiplePilesXF <MillebournesCardInformation, MillebournesGraphicsCP, CardGraphicsXF> thisDis = new BasicMultiplePilesXF <MillebournesCardInformation, MillebournesGraphicsCP, CardGraphicsXF>(); thisDis.Init(thisTeam.CardPiles, ""); thisDis.StartAnimationListener("team" + thisTeam.TeamNumber); AddControlToGrid(tempGrid, thisDis, 1, 0); SafetiesXF thisS = new SafetiesXF(); thisS.Init(thisTeam, _mainGame, _gameContainer.Command); _disList.Add(thisDis); if (x == 1) { AddControlToGrid(tempGrid, thisS, 0, 1); Grid.SetRowSpan(thisS, 2); } else { AddControlToGrid(tempGrid, thisS, 1, 1); } AddControlToGrid(_pileGrid, tempGrid, x - 1, 0); }); }
public GolfCardGameMainView(IEventAggregator aggregator, TestOptions test, GolfCardGameVMData model, GolfCardGameGameContainer gameContainer ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >(); _discardGPile = new BasePileXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >(); _score = new ScoreBoardXF(); _hiddenWPF = new BasicMultiplePilesXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >(); _otherPileWPF = new BasePileXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >(); _golfWPF = new CardBoardXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >(); ParentSingleUIContainer?restoreP = null; StackLayout mainStack = new StackLayout(); if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(GolfCardGameMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. var button = GetGamingButton("Knock", nameof(GolfCardGameMainViewModel.KnockAsync)); otherStack.Children.Add(button); mainStack.Children.Add(otherStack); _score.UseAbbreviationForTrueFalse = true; mainStack.Children.Add(_hiddenWPF); otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_golfWPF); otherStack.Children.Add(_otherPileWPF); mainStack.Children.Add(otherStack); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(GolfCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(GolfCardGameMainViewModel.Status)); Grid finalGrid = new Grid(); AddLeftOverColumn(finalGrid, 40); AddLeftOverColumn(finalGrid, 60); // this is for scoreboard _score.AddColumn("Knocked", false, nameof(GolfCardGamePlayerItem.Knocked), useTrueFalse: true); // well see how this work. hopefully this simple. _score.AddColumn("1 Changed", false, nameof(GolfCardGamePlayerItem.FirstChanged), useTrueFalse: true); _score.AddColumn("2 Changed", false, nameof(GolfCardGamePlayerItem.SecondChanged), useTrueFalse: true); _score.AddColumn("Previous Score", false, nameof(GolfCardGamePlayerItem.PreviousScore), rightMargin: 20); _score.AddColumn("Total Score", false, nameof(GolfCardGamePlayerItem.TotalScore), rightMargin: 20); firstInfo.AddRow("Round", nameof(GolfCardGameMainViewModel.Round)); firstInfo.AddRow("Instructions", nameof(GolfCardGameMainViewModel.Instructions)); mainStack.Children.Add(finalGrid); AddControlToGrid(finalGrid, firstInfo.GetContent, 0, 0); AddControlToGrid(finalGrid, _score, 0, 1); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); _score !.LoadLists(gameContainer.SaveRoot.PlayerList); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public SkipboMainView(IEventAggregator aggregator, TestOptions test, SkipboVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <SkipboCardInformation, SkipboGraphicsCP, CardGraphicsXF>(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <SkipboCardInformation, SkipboGraphicsCP, CardGraphicsXF>(); _publicGraphics = new BasicMultiplePilesXF <SkipboCardInformation, SkipboGraphicsCP, CardGraphicsXF>(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(SkipboMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_publicGraphics); mainStack.Children.Add(otherStack); _score.AddColumn("In Stock", false, nameof(SkipboPlayerItem.InStock)); int x; for (x = 1; x <= 4; x++) //has to change for flinch. { var thisStr = "Discard" + x; _score.AddColumn(thisStr, false, thisStr); } _score.AddColumn("Stock Left", false, nameof(SkipboPlayerItem.StockLeft)); _score.AddColumn("Cards Left", false, nameof(SkipboPlayerItem.ObjectCount)); //very common. SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("RS Cards", nameof(SkipboMainViewModel.CardsToShuffle)); firstInfo.AddRow("Turn", nameof(SkipboMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(SkipboMainViewModel.Status)); mainStack.Children.Add(_playerHandWPF); ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(SkipboMainViewModel.PlayerPilesScreen)); mainStack.Children.Add(parent); 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. } GamePackageViewModelBinder.ManuelElements.Clear(); //often times i have to add manually. SkipboSaveInfo save = cons !.Resolve <SkipboSaveInfo>(); //usually needs this part for multiplayer games. _score !.LoadLists(save.PlayerList); _playerHandWPF !.LoadList(_model.PlayerHand1 !, ""); // i think _deckGPile !.Init(_model.Deck1 !, ""); // try here. may have to do something else as well (?) _deckGPile.StartListeningMainDeck(); _publicGraphics !.Init(_model.PublicPiles !, ""); // i think _publicGraphics.StartAnimationListener("public"); Content = mainStack; }