Example #1
0
        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;
        }
Example #2
0
 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));
 }
Example #3
0
 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;
        }
Example #6
0
 public AskProcesses(GoFishGameContainer gameContainer, GoFishVMData model)
 {
     _gameContainer = gameContainer;
     _model         = model;
 }