public GoFishMainView(IEventAggregator aggregator, TestOptions test, GoFishVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >(); _discardGPile = new BasePileXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >(); _score = new ScoreBoardXF(); _playerHandXF = new BaseHandXF <RegularSimpleCard, ts, DeckOfCardsXF <RegularSimpleCard> >(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(GoFishMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. mainStack.Children.Add(otherStack); var endButton = GetGamingButton("End Turn", nameof(GoFishMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; endButton.VerticalOptions = LayoutOptions.Start; _score.AddColumn("Cards Left", true, nameof(GoFishPlayerItem.ObjectCount)); //very common. _score.AddColumn("Pairs", true, nameof(GoFishPlayerItem.Pairs)); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(GoFishMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(GoFishMainViewModel.Status)); StackLayout finalStack = new StackLayout(); otherStack.Children.Add(finalStack); finalStack.Children.Add(endButton); finalStack.Children.Add(firstInfo.GetContent); finalStack.Children.Add(_score); mainStack.Children.Add(_playerHandXF); ParentSingleUIContainer ask = new ParentSingleUIContainer(nameof(GoFishMainViewModel.AskScreen)); mainStack.Children.Add(ask); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public AskViewModel(CommandContainer commandContainer, GoFishVMData model, GoFishGameContainer gameContainer, IAskProcesses processes) { CommandContainer = commandContainer; _model = model; _gameContainer = gameContainer; _processes = processes; _model.AskList.ItemClickedAsync += AskList_ItemClickedAsync; _model.AskList.SendEnableProcesses(this, (() => _gameContainer.SaveRoot.RemovePairs == false && _gameContainer.SaveRoot.NumberAsked == false)); }
public GoFishMainGameClass(IGamePackageResolver mainContainer, IEventAggregator aggregator, BasicData basicData, TestOptions test, GoFishVMData currentMod, IMultiplayerSaveState state, IAsyncDelayer delay, ICardInfo <RegularSimpleCard> cardInfo, CommandContainer command, GoFishGameContainer gameContainer, IAskProcesses processes) : base(mainContainer, aggregator, basicData, test, currentMod, state, delay, cardInfo, command, gameContainer) { _model = currentMod; _processes = processes; }
public GoFishMainViewModel(CommandContainer commandContainer, GoFishMainGameClass mainGame, GoFishVMData viewModel, BasicData basicData, TestOptions test, IGamePackageResolver resolver, GoFishGameContainer gameContainer ) : base(commandContainer, mainGame, viewModel, basicData, test, resolver) { _mainGame = mainGame; _model = viewModel; _resolver = resolver; _model.Deck1.NeverAutoDisable = false; _model.PlayerHand1.AutoSelect = HandObservable <RegularSimpleCard> .EnumAutoType.SelectAsMany; gameContainer.LoadAskScreenAsync = LoadAskScreenAsync; }
public AskView(GoFishVMData model) { Grid parentGrid = new Grid(); StackLayout thisStack = new StackLayout(); EnumPickerXF <NumberPieceCP, NumberPieceXF, EnumCardValueList> thisAsk = new EnumPickerXF <NumberPieceCP, NumberPieceXF, EnumCardValueList>(); thisAsk.Rows = 3; thisAsk.Columns = 5; thisAsk.LoadLists(model.AskList !); Text = "Choose Number To Ask"; thisStack.Children.Add(thisAsk); var thisBut = GetGamingButton("Number To Ask", nameof(AskViewModel.AskAsync)); thisStack.Children.Add(thisBut); SetUpMarginsOnParentControl(thisStack); parentGrid.Children.Add(ThisDraw); // maybe this is causing problems for the other (?) parentGrid.Children.Add(thisStack); Content = parentGrid; }
public AskProcesses(GoFishGameContainer gameContainer, GoFishVMData model) { _gameContainer = gameContainer; _model = model; }