示例#1
0
 public ChooseColorViewModel(CommandContainer commandContainer, UnoVMData model, IChooseColorProcesses processes)
 {
     CommandContainer = commandContainer;
     _model           = model;
     _processes       = processes;
     _model.ColorPicker.ItemClickedAsync += ColorPicker_ItemClickedAsync;
 }
示例#2
0
        //this will hold the timer.
        //only the player who needs it will show it.

        public SayUnoViewModel(CommandContainer commandContainer, ISayUnoProcesses processes, UnoVMData model)
        {
            CommandContainer     = commandContainer;
            _processes           = processes;
            _model               = model;
            _model.Stops.TimeUp += Stops_TimeUp;
            CommandContainer.ExecutingChanged += CommandContainer_ExecutingChanged;
        }
        public ChooseColorView(IEventAggregator aggregator, UnoVMData model)
        {
            _aggregator = aggregator;
            _aggregator.Subscribe(this);
            StackLayout stack = new StackLayout();
            EnumPickerXF <CheckerChoiceCP <EnumColorTypes>,
                          CheckerChooserXF <EnumColorTypes>, EnumColorTypes> picker = new EnumPickerXF <CheckerChoiceCP <EnumColorTypes>, CheckerChooserXF <EnumColorTypes>, EnumColorTypes>();

            stack.Children.Add(picker);
            BaseHandXF <UnoCardInformation, UnoGraphicsCP, CardGraphicsXF> hand = new BaseHandXF <UnoCardInformation, UnoGraphicsCP, CardGraphicsXF>();

            stack.Children.Add(hand);
            hand.Margin = new Thickness(5);
            hand.LoadList(model.PlayerHand1, ts.TagUsed);
            picker.LoadLists(model.ColorPicker);
            Content = stack;
        }
示例#4
0
 public UnoMainViewModel(CommandContainer commandContainer,
                         UnoMainGameClass mainGame,
                         UnoVMData viewModel,
                         BasicData basicData,
                         TestOptions test,
                         IGamePackageResolver resolver,
                         UnoGameContainer gameContainer
                         )
     : base(commandContainer, mainGame, viewModel, basicData, test, resolver)
 {
     _mainGame      = mainGame;
     _model         = viewModel;
     _resolver      = resolver;
     _gameContainer = gameContainer;
     _model.Deck1.NeverAutoDisable    = true;
     _gameContainer.OpenSaidUnoAsync  = LoadSayUnoAsync;
     _gameContainer.CloseSaidUnoAsync = CloseSayUnoAsync;
 }
        public UnoMainView(IEventAggregator aggregator,
                           TestOptions test,
                           UnoVMData model
                           )
        {
            _aggregator = aggregator;
            _model      = model;
            _aggregator.Subscribe(this);

            _deckGPile     = new BaseDeckXF <UnoCardInformation, UnoGraphicsCP, CardGraphicsXF>();
            _discardGPile  = new BasePileXF <UnoCardInformation, UnoGraphicsCP, CardGraphicsXF>();
            _score         = new ScoreBoardXF();
            _playerHandWPF = new BaseHandXF <UnoCardInformation, UnoGraphicsCP, CardGraphicsXF>();
            StackLayout             mainStack = new StackLayout();
            ParentSingleUIContainer?restoreP  = null;

            if (test.SaveOption == EnumTestSaveCategory.RestoreOnly)
            {
                restoreP = new ParentSingleUIContainer(nameof(UnoMainViewModel.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 endButton = GetGamingButton("End Turn", nameof(UnoMainViewModel.EndTurnAsync));

            endButton.HorizontalOptions = LayoutOptions.Start;
            otherStack.Children.Add(endButton);
            ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(UnoMainViewModel.SayUnoScreen));

            otherStack.Children.Add(parent);

            mainStack.Children.Add(otherStack);
            _score.AddColumn("Cards Left", true, nameof(UnoPlayerItem.ObjectCount)); //very common.
            _score.AddColumn("Total Points", true, nameof(UnoPlayerItem.TotalPoints), rightMargin: 10);
            _score.AddColumn("Previous Points", true, nameof(UnoPlayerItem.PreviousPoints), rightMargin: 10);
            SimpleLabelGridXF firstInfo = new SimpleLabelGridXF();

            firstInfo.AddRow("Turn", nameof(UnoMainViewModel.NormalTurn));
            firstInfo.AddRow("Next", nameof(UnoMainViewModel.NextPlayer));
            firstInfo.AddRow("Status", nameof(UnoMainViewModel.Status));


            mainStack.Children.Add(_playerHandWPF);
            mainStack.Children.Add(firstInfo.GetContent);

            otherStack             = new StackLayout();
            otherStack.Orientation = StackOrientation.Horizontal;
            mainStack.Children.Add(otherStack);
            otherStack.Children.Add(_score);
            //this is only a starting point.


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

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

            if (restoreP != null)
            {
                mainStack.Children.Add(restoreP);              //default add to grid but does not have to.
            }
            UnoSaveInfo save = cons !.Resolve <UnoSaveInfo>(); //usually needs this part for multiplayer games.

            _score !.LoadLists(save.PlayerList);
            _playerHandWPF !.LoadList(_model.PlayerHand1 !, ts.TagUsed); // i think
            _discardGPile !.Init(_model.Pile1 !, ts.TagUsed);            // may have to be here (well see)
            _discardGPile.StartListeningDiscardPile();                   // its the main one.

            _deckGPile !.Init(_model.Deck1 !, ts.TagUsed);               // try here.  may have to do something else as well (?)
            _deckGPile.StartListeningMainDeck();


            Content = mainStack;
        }
示例#6
0
 public UnoComputerAI(UnoGameContainer gameContainer, UnoVMData model)
 {
     _gameContainer = gameContainer;
     _model         = model;
 }
 public ChooseColorProcesses(UnoGameContainer gameContainer, UnoVMData model, UnoColorsDelegates delegates)
 {
     _gameContainer = gameContainer;
     _model         = model;
     _delegates     = delegates;
 }