示例#1
0
        public AdvancedOptionsViewModel(CommandContainer commandContainer,
                                        IGamePackageResolver resolver,
                                        BasicData basicData,
                                        IAdvancedProcesses processes,
                                        IEventAggregator aggregator
                                        )
        {
            CommandContainer = commandContainer;
            _basicData       = basicData;
            _processes       = processes;
            _aggregator      = aggregator;
            aggregator.Subscribe(this);
            Game1             = new ListViewPicker(commandContainer, resolver);
            Easy1             = new ListViewPicker(commandContainer, resolver);
            Game1.IndexMethod = EnumIndexMethod.OneBased;
            Easy1.IndexMethod = EnumIndexMethod.OneBased;
            var thisList = new CustomBasicList <string>()
            {
                "Easy Words", "Any Words"
            };

            Easy1.LoadTextList(thisList);
            thisList = new CustomBasicList <string>()
            {
                "Short Game", "Regular Game"
            };
            Game1.LoadTextList(thisList);
            SelectSpecificOptions();
            Game1.ItemSelectedAsync += Game1_ItemSelectedAsync;
            Easy1.ItemSelectedAsync += Easy1_ItemSelectedAsync;
        }
        public XactikaVMData(IEventAggregator aggregator,
                             CommandContainer command,
                             BasicTrickAreaObservable <EnumShapes, XactikaCardInformation> trickArea1,
                             XactikaGameContainer gameContainer
                             )
        {
            Deck1          = new DeckObservablePile <XactikaCardInformation>(aggregator, command);
            Pile1          = new PileObservable <XactikaCardInformation>(aggregator, command);
            PlayerHand1    = new HandObservable <XactikaCardInformation>(command);
            TrickArea1     = trickArea1;
            _gameContainer = gameContainer;
            ModeChoose1    = new ListViewPicker(command, gameContainer.Resolver);
            ShapeChoose1   = new ChooseShapeObservable(_gameContainer);
            Bid1           = new NumberPicker(command, gameContainer.Resolver);
            ModeChoose1.ItemSelectedAsync += ModeChooser1_ItemSelectedAsync;
            Bid1.ChangedNumberValueAsync  += Bid1_ChangedNumberValueAsync;
            PlayerHand1 !.Maximum          = 8;
            ModeChoose1.IndexMethod        = EnumIndexMethod.OneBased;
            CustomBasicList <string> tempList = new CustomBasicList <string> {
                "To Win", "To Lose", "Bid"
            };

            ModeChoose1.LoadTextList(tempList);
            ShapeChoose1.SendEnableProcesses(this, (() => _gameContainer.SaveRoot.GameStatus == EnumStatusList.CallShape));
        }
示例#3
0
        public MinesweeperOpeningViewModel(CommandContainer container, IGamePackageResolver resolver, LevelClass global)
        {
            LevelPicker = new ListViewPicker(container, resolver); //hopefully this simple.
            LevelPicker.SelectionMode = ListViewPicker.EnumSelectionMode.SingleItem;
            LevelPicker.IndexMethod   = ListViewPicker.EnumIndexMethod.OneBased;
            _global = global;
            //no need for send processes.
            LevelChosen = _global.Level;
            this.PopulateMinesNeeded();
            LevelPicker.ItemSelectedAsync += LevelPicker_ItemSelectedAsync;
            LevelPicker.LoadTextList(new CustomBasicList <string>()
            {
                "Easy", "Medium", "Hard"
            });
            //LevelPicker.SelectSpecificItem(1);
            switch (LevelChosen)
            {
            case EnumLevel.Easy:
                LevelPicker.SelectSpecificItem(1);
                break;

            case EnumLevel.Medium:
                LevelPicker.SelectSpecificItem(2);
                break;

            case EnumLevel.Hard:
                LevelPicker.SelectSpecificItem(3);
                break;

            default:
                throw new BasicBlankException("Not Supported");
            }
            LevelPicker.IsEnabled = true; //take a risk this time.  not sure why it worked before.
        }
示例#4
0
 public LifeBoardGameVMData(CommandContainer command, IGamePackageResolver resolver, IEventAggregator aggregator)
 {
     HandList      = new HandObservable <LifeBaseCard>(command);
     GenderChooser = new SimpleEnumPickerVM <EnumGender, CirclePieceCP <EnumGender> >(command, new ColorListChooser <EnumGender>());         //hopefully still works.
     GenderChooser.AutoSelectCategory = EnumAutoSelectCategory.AutoEvent;
     PlayerPicker                    = new ListViewPicker(command, resolver);
     PlayerPicker.IndexMethod        = EnumIndexMethod.OneBased;
     PlayerPicker.ItemSelectedAsync += PlayerPicker_ItemSelectedAsync;
     SinglePile = new PileObservable <LifeBaseCard>(aggregator, command);
     SinglePile.SendAlwaysEnable(this);             //hopefuly this simple.
     SinglePile.Text         = "Card";
     SinglePile.CurrentOnly  = true;
     HandList.Text           = "None";
     HandList.IgnoreMaxRules = true;
 }
 public MastermindOpeningViewModel(CommandContainer container, IGamePackageResolver resolver, LevelClass global)
 {
     LevelPicker = new ListViewPicker(container, resolver); //hopefully this simple.
     LevelPicker.SelectionMode = ListViewPicker.EnumSelectionMode.SingleItem;
     LevelPicker.IndexMethod   = ListViewPicker.EnumIndexMethod.OneBased;
     _global          = global;
     CommandContainer = container;
     LevelChosen      = _global.LevelChosen;
     LevelPicker.LoadTextList(new CustomBasicList <string>()
     {
         "Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Level 6"
     });
     LevelPicker.ItemSelectedAsync += LevelPicker_ItemSelectedAsync;
     LevelPicker.SelectSpecificItem(LevelChosen);
     LevelPicker.IsEnabled = true;
 }
示例#6
0
        public CardsPlayerViewModel(CommandContainer commandContainer,
                                    IGamePackageResolver resolver, BasicData basicData,
                                    ICardsChosenProcesses processes,
                                    IEventAggregator aggregator
                                    )
        {
            CommandContainer = commandContainer;
            _basicData       = basicData;
            _processes       = processes;
            _aggregator      = aggregator;
            _aggregator.Subscribe(this);
            CardList1                    = new ListViewPicker(CommandContainer, resolver);
            CardList1.IndexMethod        = EnumIndexMethod.ZeroBased;
            CardList1.ItemSelectedAsync += CardList1_ItemSelectedAsync;
            CustomBasicList <string> thisList = new CustomBasicList <string>()
            {
                "4 Cards", "6 Cards", "8 Cards", "10 Cards"
            };

            CardList1.LoadTextList(thisList);
        }
示例#7
0
        //maybe the view models will process the messages as well.  that could be a good idea.


        public FirstOptionViewModel(CommandContainer commandContainer,
                                    IGamePackageResolver resolver,
                                    BasicData basicData,
                                    IFirstOptionProcesses first,
                                    IEventAggregator aggregator
                                    )
        {
            CommandContainer = commandContainer;
            _basicData       = basicData;
            _first           = first;
            _aggregator      = aggregator;
            _aggregator.Subscribe(this);
            Option1 = new ListViewPicker(commandContainer, resolver);
            Option1.ItemSelectedAsync += Option1_ItemSelectedAsync;
            CustomBasicList <string> list = new CustomBasicList <string>()
            {
                "Beginner", "Advanced"
            };

            Option1.IndexMethod = EnumIndexMethod.OneBased;
            Option1.LoadTextList(list);
        }
 public PaydayVMData(CommandContainer command, IGamePackageResolver resolver, BasicData basicData, IEventAggregator aggregator)
 {
     _command  = command;
     _resolver = resolver;
     PopUpList = new ListViewPicker(command, resolver);
     //for enable processes, another view model has to handle it.
     PopUpList.IndexMethod        = ListViewPicker.EnumIndexMethod.OneBased;
     PopUpList.ItemSelectedAsync += PopUpList_ItemSelectedAsync;
     //something else has to handle the event too.
     CurrentDealList = new HandObservable <DealCard>(command);
     if (basicData.IsXamarinForms == false)
     {
         CurrentDealList.AutoSelect = HandObservable <DealCard> .EnumAutoType.None;
     }
     CurrentDealList.Text = "Deal List";
     CurrentMailList      = new HandObservable <MailCard>(command);
     CurrentMailList.Text = "Mail List";
     DealPile             = new PileObservable <DealCard>(aggregator, command);
     DealPile.CurrentOnly = true;
     DealPile.Text        = "Deal Pile";
     MailPile             = new PileObservable <MailCard>(aggregator, command);
     MailPile.CurrentOnly = true;
     MailPile.Text        = "Mail Pile";
 }
示例#9
0
        public ActionContainer(CommandContainer command, IGamePackageResolver resolver, FluxxGameContainer gameContainer, FluxxDelegates delegates)
        {
            delegates.RefreshEnables = RefreshEnables;
            _command               = command;
            _gameContainer         = gameContainer;
            ActionDetail           = new DetailCardObservable();
            CurrentDetail          = new DetailCardObservable();
            YourKeepers            = new HandObservable <KeeperCard>(command);
            YourKeepers.AutoSelect = HandObservable <KeeperCard> .EnumAutoType.ShowObjectOnly;
            YourKeepers.Text       = "Your Keepers";
            YourKeepers.SendAlwaysEnable(this);
            YourKeepers.ConsiderSelectOneAsync += YourKeepers_ConsiderSelectOneAsync;
            PrivateGoals                         = new HandObservable <GoalCard>(command);
            PrivateGoals.AutoSelect              = HandObservable <GoalCard> .EnumAutoType.ShowObjectOnly;
            PrivateGoals.Text                    = "Goal Cards";
            PrivateGoals.Maximum                 = 3;
            PrivateGoals.ConsiderSelectOneAsync += PrivateGoals_ConsiderSelectOneAsync;
            //handlist hook up when necessary.
            YourCards      = new HandObservable <FluxxCardInformation>(command);
            YourCards.Text = "Your Cards";
            YourCards.ConsiderSelectOneAsync += YourCards_ConsiderSelectOneAsync;
            YourCards.AutoSelect              = HandObservable <FluxxCardInformation> .EnumAutoType.ShowObjectOnly;
            OtherHand                         = new HandObservable <FluxxCardInformation>(command);
            OtherHand.AutoSelect              = HandObservable <FluxxCardInformation> .EnumAutoType.SelectOneOnly;
            OtherHand.Text                    = "Other Player's Cards";
            OtherHand.ConsiderSelectOneAsync += YourCards_ConsiderSelectOneAsync;
            OtherHand.SendEnableProcesses(this, () =>
            {
                //if (_thisMod.FluxxScreenUsed != EnumActionScreen.ActionScreen)
                //    return false;
                if (OtherHand.Visible == false)
                {
                    return(false);
                }
                return(ActionCategory == EnumActionCategory.FirstRandom || ActionCategory == EnumActionCategory.UseTake);
            });

            TempHand                         = new HandObservable <FluxxCardInformation>(command);
            TempHand.AutoSelect              = HandObservable <FluxxCardInformation> .EnumAutoType.SelectOneOnly;
            TempHand.Text                    = "Temporary Cards";
            TempHand.ConsiderSelectOneAsync += YourCards_ConsiderSelectOneAsync;
            TempHand.SendEnableProcesses(this, () =>
            {
                return(ActionCategory == EnumActionCategory.Everybody1 || ActionCategory == EnumActionCategory.DrawUse);
            });
            Direction1 = new ListViewPicker(command, resolver);
            Direction1.ItemSelectedAsync += Direction1_ItemSelectedAsync;
            Direction1.IndexMethod        = ListViewPicker.EnumIndexMethod.ZeroBased;
            Direction1.LoadTextList(new CustomBasicList <string> {
                "Left", "Right"
            });
            Rule1 = new ListViewPicker(command, resolver);
            Rule1.ItemSelectedAsync += Rule1_ItemSelectedAsync;
            Rule1.IndexMethod        = ListViewPicker.EnumIndexMethod.ZeroBased;
            Rule1.SendEnableProcesses(this, () =>
            {
                return(ActionCategory == EnumActionCategory.Rules);
            });
            Player1 = new ListViewPicker(command, resolver);
            Player1.ItemSelectedAsync += Player1_ItemSelectedAsync;
            Player1.IndexMethod        = ListViewPicker.EnumIndexMethod.ZeroBased;
            Player1.SendEnableProcesses(this, () => CanEnableChoosePlayer());

            CardList1 = new ListViewPicker(command, resolver);
            CardList1.ItemSelectedAsync += CardList1_ItemSelectedAsync;
            CardList1.IndexMethod        = ListViewPicker.EnumIndexMethod.ZeroBased;
            CardList1.SendEnableProcesses(this, () =>
            {
                return(ActionCategory == EnumActionCategory.DoAgain);
            });
        }