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)); }
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. }
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; }
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); }
//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"; }
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); }); }