public CribbageVMData(IEventAggregator aggregator, CommandContainer command, HiddenBoard board) { Deck1 = new DeckObservablePile <CribbageCard>(aggregator, command); Pile1 = new PileObservable <CribbageCard>(aggregator, command); PlayerHand1 = new HandObservable <CribbageCard>(command); MainFrame = new HandObservable <CribbageCard>(command); CribFrame = new HandObservable <CribbageCard>(command); CribFrame.Visible = false; MainFrame.Text = "Card List"; CribFrame.Text = "Crib"; MainFrame.SendEnableProcesses(this, () => false); CribFrame.SendEnableProcesses(this, () => false); //something else has to set the maxs. GameBoard1 = board; ScoreBoard1 = new ScoreBoardCP(); }
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); }); }