Пример #1
0
 public GalaxyCardGameMainGameClass(IGamePackageResolver mainContainer,
                                    IEventAggregator aggregator,
                                    BasicData basicData,
                                    TestOptions test,
                                    GalaxyCardGameVMData currentMod,
                                    IMultiplayerSaveState state,
                                    IAsyncDelayer delay,
                                    ICardInfo <GalaxyCardGameCardInformation> cardInfo,
                                    CommandContainer command,
                                    GalaxyCardGameGameContainer gameContainer,
                                    ITrickData trickData,
                                    ITrickPlay trickPlay,
                                    IAdvancedTrickProcesses aTrick,
                                    GalaxyDelegates delegates
                                    )
     : base(mainContainer, aggregator, basicData, test, currentMod, state, delay, cardInfo, command, gameContainer, trickData, trickPlay)
 {
     _model                   = currentMod;
     _command                 = command;
     _gameContainer           = gameContainer;
     _aTrick                  = aTrick;
     delegates.PlayerGetCards = (() => PlayerGetCards);
     _rummys                  = new RummyProcesses <EnumSuitList, EnumColorList, GalaxyCardGameCardInformation>();
 }
Пример #2
0
        public GalaxyCardGameMainView(IEventAggregator aggregator,
                                      TestOptions test,
                                      GalaxyCardGameVMData model,
                                      GalaxyCardGameGameContainer gameContainer
                                      )
        {
            _aggregator    = aggregator;
            _model         = model;
            _model.WinUI   = this;
            _gameContainer = gameContainer;
            _aggregator.Subscribe(this);
            gameContainer.SaveRoot.LoadWin(this);
            _deckGPile     = new BaseDeckWPF <GalaxyCardGameCardInformation, ts, DeckOfCardsWPF <GalaxyCardGameCardInformation> >();
            _score         = new ScoreBoardWPF();
            _playerHandWPF = new BaseHandWPF <GalaxyCardGameCardInformation, ts, DeckOfCardsWPF <GalaxyCardGameCardInformation> >();

            _trick1                  = new TwoPlayerTrickWPF <EnumSuitList, GalaxyCardGameCardInformation, ts, DeckOfCardsWPF <GalaxyCardGameCardInformation> >();
            _trick1.Width            = 500;
            _nextCard                = new DeckOfCardsWPF <GalaxyCardGameCardInformation>();
            _planetStack             = new StackPanel();
            _moonGrid                = new Grid();
            _planetStack.Orientation = Orientation.Horizontal;
            AddLeftOverColumn(_moonGrid, 50);
            AddLeftOverColumn(_moonGrid, 50);
            AddAutoRows(_moonGrid, 1);
            _nextCard.SendSize(ts.TagUsed, _gameContainer.SaveRoot !.WinningCard);
            StackPanel mainStack             = new StackPanel();
            ParentSingleUIContainer?restoreP = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer()
                {
                    Name = nameof(GalaxyCardGameMainViewModel.RestoreScreen)
                };
            }
            var endButton = GetGamingButton("End Turn", nameof(GalaxyCardGameMainViewModel.EndTurnAsync));

            endButton.HorizontalAlignment = HorizontalAlignment.Left;
            endButton.VerticalAlignment   = VerticalAlignment.Top;

            StackPanel otherStack = new StackPanel();

            otherStack.Orientation = Orientation.Horizontal;
            otherStack.Children.Add(_trick1);
            otherStack.Children.Add(_nextCard);
            otherStack.Children.Add(_deckGPile);
            mainStack.Children.Add(otherStack);
            _score.AddColumn("Cards Left", false, nameof(GalaxyCardGamePlayerItem.ObjectCount)); //very common.
            SimpleLabelGrid firstInfo = new SimpleLabelGrid();

            firstInfo.AddRow("Turn", nameof(GalaxyCardGameMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(GalaxyCardGameMainViewModel.Status));

            mainStack.Children.Add(_moonGrid);
            otherStack             = new StackPanel();
            otherStack.Orientation = Orientation.Horizontal;
            otherStack.Children.Add(_playerHandWPF);
            StackPanel finalStack = new StackPanel();

            finalStack.Children.Add(firstInfo.GetContent);
            var button = GetGamingButton("Create New Moon", nameof(GalaxyCardGameMainViewModel.MoonAsync));

            finalStack.Children.Add(endButton);
            finalStack.Children.Add(button);
            otherStack.Children.Add(finalStack);
            mainStack.Children.Add(otherStack);
            otherStack             = new StackPanel();
            otherStack.Orientation = Orientation.Horizontal;
            otherStack.Children.Add(_planetStack);
            otherStack.Children.Add(_score);
            mainStack.Children.Add(otherStack);


            _deckGPile.Margin = new Thickness(5, 5, 5, 5);



            if (restoreP != null)
            {
                //todo:  figure out where to place the restore ui if there is a restore option.
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }
Пример #3
0
        public GalaxyCardGameMainView(IEventAggregator aggregator,
                                      TestOptions test,
                                      GalaxyCardGameVMData model,
                                      GalaxyCardGameGameContainer gameContainer
                                      )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);
            _gameContainer = gameContainer;
            gameContainer.SaveRoot.LoadWin(this);
            _deckGPile               = new BaseDeckXF <GalaxyCardGameCardInformation, ts, DeckOfCardsXF <GalaxyCardGameCardInformation> >();
            _score                   = new ScoreBoardXF();
            _playerHandWPF           = new BaseHandXF <GalaxyCardGameCardInformation, ts, DeckOfCardsXF <GalaxyCardGameCardInformation> >();
            _trick1                  = new TwoPlayerTrickXF <EnumSuitList, GalaxyCardGameCardInformation, ts, DeckOfCardsXF <GalaxyCardGameCardInformation> >();
            _nextCard                = new DeckOfCardsXF <GalaxyCardGameCardInformation>();
            _planetStack             = new StackLayout();
            _moonGrid                = new Grid();
            _planetStack.Orientation = StackOrientation.Horizontal;
            AddLeftOverColumn(_moonGrid, 50);
            AddLeftOverColumn(_moonGrid, 50);
            AddAutoRows(_moonGrid, 1);

            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(GalaxyCardGameMainViewModel.RestoreScreen));
            }

            _score.AddColumn("Cards Left", false, nameof(GalaxyCardGamePlayerItem.ObjectCount)); //very common.
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(GalaxyCardGameMainViewModel.NormalTurn));
            firstInfo.AddRow("Status", nameof(GalaxyCardGameMainViewModel.Status));

            var endButton = GetGamingButton("End Turn", nameof(GalaxyCardGameMainViewModel.EndTurnAsync));

            endButton.HorizontalOptions = LayoutOptions.Start;
            endButton.VerticalOptions   = LayoutOptions.Start;
            StackLayout otherStack = new StackLayout();

            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_trick1);
            otherStack.Children.Add(_nextCard);
            otherStack.Children.Add(_deckGPile);
            mainStack.Children.Add(otherStack);

            mainStack.Children.Add(_moonGrid);
            otherStack             = new StackLayout();
            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_playerHandWPF);
            //StackLayout finalStack = new StackLayout();
            //finalStack.Children.Add(firstInfo.GetContent);
            var thisBut = GetSmallerButton("Create New Moon", nameof(GalaxyCardGameMainViewModel.MoonAsync));

            thisBut.HorizontalOptions = LayoutOptions.Start;
            thisBut.VerticalOptions   = LayoutOptions.Start;
            otherStack.Children.Add(endButton);
            otherStack.Children.Add(thisBut);
            //otherStack.Children.Add(finalStack);
            mainStack.Children.Add(otherStack);
            otherStack             = new StackLayout();
            otherStack.Orientation = StackOrientation.Horizontal;
            otherStack.Children.Add(_planetStack);
            otherStack.Children.Add(_score);
            otherStack.Children.Add(firstInfo.GetContent);
            mainStack.Children.Add(otherStack);
            _deckGPile.Margin          = new Thickness(5, 5, 5, 5);
            _deckGPile.VerticalOptions = LayoutOptions.Start;



            if (restoreP != null)
            {
                mainStack.Children.Add(restoreP); //default add to grid but does not have to.
            }
            Content = mainStack;
        }