public MonasteryCardGameMainViewModel(CommandContainer commandContainer, MonasteryCardGameMainGameClass mainGame, MonasteryCardGameVMData viewModel, BasicData basicData, TestOptions test, IGamePackageResolver resolver, MonasteryCardGameGameContainer gameContainer ) : base(commandContainer, mainGame, viewModel, basicData, test, resolver) { _mainGame = mainGame; _model = viewModel; _basicData = basicData; _gameContainer = gameContainer; _model.Deck1.NeverAutoDisable = true; var player = _mainGame.PlayerList.GetSelf(); mainGame.Aggregator.Subscribe(player); //hopefully this works now. _model.TempSets.Init(this); _model.TempSets.ClearBoard(); _model.TempSets.SetClickedAsync += TempSets_SetClickedAsync; _model.MainSets.SetClickedAsync += MainSets_SetClickedAsync; _model.PlayerHand1 !.AutoSelect = HandObservable <MonasteryCardInfo> .EnumAutoType.SelectAsMany; _model.MainSets.SendEnableProcesses(this, () => { if (_gameContainer !.AlreadyDrew == false) { return(false); } return(_mainGame.SingleInfo !.FinishedCurrentMission); });
public MonasteryCardGameMainGameClass(IGamePackageResolver mainContainer, IEventAggregator aggregator, BasicData basicData, TestOptions test, MonasteryCardGameVMData currentMod, IMultiplayerSaveState state, IAsyncDelayer delay, ICardInfo <MonasteryCardInfo> cardInfo, CommandContainer command, MonasteryCardGameGameContainer gameContainer) : base(mainContainer, aggregator, basicData, test, currentMod, state, delay, cardInfo, command, gameContainer) { _model = currentMod; _command = command; _gameContainer = gameContainer; }
public async Task InitAsync(MonasteryCardGameVMData model, IUIView view, IEventAggregator aggregator) { _view = view; _aggregator = aggregator; Text = "Mission List"; _thisList = model.CompleteMissions; Grid mainGrid = new Grid(); var thisRect = ThisFrame.GetControlArea(); _thisGrid = new Grid(); _thisGrid.Margin = new Thickness(thisRect.Left + 3, thisRect.Top + 10, 3, 3); AddAutoRows(_thisGrid, 6); AddLeftOverColumn(_thisGrid, 50); AddLeftOverColumn(_thisGrid, 50); mainGrid.Children.Add(ThisDraw); mainGrid.Children.Add(_thisGrid); await PopulateListAsync(); _thisList.CollectionChanged += ListChange; Content = mainGrid; }
public MonasteryCardGameMainView(IEventAggregator aggregator, TestOptions test, MonasteryCardGameVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <MonasteryCardInfo, ts, DeckOfCardsWPF <MonasteryCardInfo> >(); _discardGPile = new BasePileWPF <MonasteryCardInfo, ts, DeckOfCardsWPF <MonasteryCardInfo> >(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <MonasteryCardInfo, ts, DeckOfCardsWPF <MonasteryCardInfo> >(); _tempG = new TempRummySetsWPF <EnumSuitList, EnumColorList, MonasteryCardInfo, ts, DeckOfCardsWPF <MonasteryCardInfo> >(); _mainG = new MainRummySetsWPF <EnumSuitList, EnumColorList, MonasteryCardInfo, ts, DeckOfCardsWPF <MonasteryCardInfo>, RummySet, SavedSet>(); _missionWPF = new MissionUI(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(MonasteryCardGameMainViewModel.RestoreScreen) }; } Grid finalGrid = new Grid(); AddLeftOverRow(finalGrid, 20); // has to be this way because of scoreboard. AddLeftOverRow(finalGrid, 80); mainStack.Children.Add(finalGrid); Grid firstGrid = new Grid(); AddLeftOverColumn(firstGrid, 40); // 50 was too much. if there is scrolling, i guess okay. AddAutoColumns(firstGrid, 1); // maybe 1 (well see) AddLeftOverColumn(firstGrid, 15); // for other details AddLeftOverColumn(firstGrid, 30); // for scoreboard _deckGPile.HorizontalAlignment = HorizontalAlignment.Left; _deckGPile.VerticalAlignment = VerticalAlignment.Top; _discardGPile.HorizontalAlignment = HorizontalAlignment.Left; _discardGPile.VerticalAlignment = VerticalAlignment.Top; StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. AddControlToGrid(firstGrid, otherStack, 0, 1); AddControlToGrid(firstGrid, _playerHandWPF, 0, 0); _score.UseAbbreviationForTrueFalse = true; _score.AddColumn("Cards Left", false, nameof(MonasteryCardGamePlayerItem.ObjectCount)); _score.AddColumn("Finished Mission", false, nameof(MonasteryCardGamePlayerItem.FinishedCurrentMission), useTrueFalse: true); int x; for (x = 1; x <= 9; x++) { _score.AddColumn("Mission" + x, false, "Mission" + x + "Completed", useTrueFalse: true); } AddControlToGrid(firstGrid, _score, 0, 3); // use 3 instead of 4 here. SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(MonasteryCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(MonasteryCardGameMainViewModel.Status)); AddControlToGrid(firstGrid, firstInfo.GetContent, 0, 2); AddControlToGrid(finalGrid, firstGrid, 0, 0); _tempG.Height = 700; _mainG.Height = 700; //i think. Grid bottomGrid = new Grid(); AddAutoColumns(bottomGrid, 1); AddLeftOverColumn(bottomGrid, 40); AddLeftOverColumn(bottomGrid, 60); // most important is the last one. can adjust as needed though. especially on tablets AddControlToGrid(bottomGrid, _tempG, 0, 0); AddControlToGrid(bottomGrid, _mainG, 0, 1); AddControlToGrid(bottomGrid, _missionWPF, 0, 2); AddControlToGrid(finalGrid, bottomGrid, 1, 0); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.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; }
public MonasteryCardGameMainView(IEventAggregator aggregator, TestOptions test, MonasteryCardGameVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <MonasteryCardInfo, ts, DeckOfCardsXF <MonasteryCardInfo> >(); _discardGPile = new BasePileXF <MonasteryCardInfo, ts, DeckOfCardsXF <MonasteryCardInfo> >(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <MonasteryCardInfo, ts, DeckOfCardsXF <MonasteryCardInfo> >(); _tempG = new TempRummySetsXF <EnumSuitList, EnumColorList, MonasteryCardInfo, ts, DeckOfCardsXF <MonasteryCardInfo> >(); _mainG = new MainRummySetsXF <EnumSuitList, EnumColorList, MonasteryCardInfo, ts, DeckOfCardsXF <MonasteryCardInfo>, RummySet, SavedSet>(); _missionXF = new MissionUI(); Grid finalGrid = new Grid(); AddAutoRows(finalGrid, 1); AddLeftOverRow(finalGrid, 1); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(MonasteryCardGameMainViewModel.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. _score.UseAbbreviationForTrueFalse = true; _score.AddColumn("Cards", false, nameof(MonasteryCardGamePlayerItem.ObjectCount)); _score.AddColumn("Done", false, nameof(MonasteryCardGamePlayerItem.FinishedCurrentMission), useTrueFalse: true); int x; for (x = 1; x <= 9; x++) { _score.AddColumn("M" + x, false, "Mission" + x + "Completed", useTrueFalse: true); } SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(MonasteryCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(MonasteryCardGameMainViewModel.Status)); Grid firstGrid = new Grid(); AddLeftOverColumn(firstGrid, 35); AddAutoColumns(firstGrid, 1); AddLeftOverColumn(firstGrid, 15); AddLeftOverColumn(firstGrid, 30); AddControlToGrid(firstGrid, _score, 0, 3); // use 3 instead of 4 here. AddControlToGrid(firstGrid, otherStack, 0, 1); AddControlToGrid(firstGrid, _playerHandWPF, 0, 0); AddControlToGrid(firstGrid, firstInfo.GetContent, 0, 2); AddControlToGrid(finalGrid, firstGrid, 0, 0); _tempG.Divider = 1.1; Grid bottomGrid = new Grid(); AddAutoColumns(bottomGrid, 1); AddLeftOverColumn(bottomGrid, 35); AddLeftOverColumn(bottomGrid, 65); AddControlToGrid(bottomGrid, _tempG, 0, 0); AddControlToGrid(bottomGrid, _mainG, 0, 1); AddControlToGrid(bottomGrid, _missionXF, 0, 2); AddControlToGrid(finalGrid, bottomGrid, 1, 0); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); if (restoreP != null) { otherStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = finalGrid; }