public PlayerPilesViewModel(CommandContainer commandContainer, FlinchGameContainer gameContainer, FlinchVMData model, FlinchMainGameClass mainGame) { gameContainer.SingleInfo = gameContainer.PlayerList !.GetWhoPlayer(); CommandContainer = commandContainer; _model = model; _mainGame = mainGame; _model.StockPile.ClearCards(); //model.StockPile = new Piles.StockViewModel(commandContainer, gameContainer.Aggregator); gameContainer.SingleInfo !.StockList.ForEach(x => { model.StockPile.AddCard(x); }); //model.StockPile.StockFrame.PileList!.ReplaceRange(gameContainer.SingleInfo!.StockList); _model.DiscardPiles = new DiscardPilesVM <FlinchCardInformation>(commandContainer, gameContainer.Aggregator); _model.DiscardPiles.Init(HowManyDiscards); if (gameContainer.SingleInfo !.DiscardList.Count > 0) { model.DiscardPiles !.PileList !.ReplaceRange(gameContainer.SingleInfo.DiscardList); } _model.DiscardPiles.PileClickedAsync += DiscardPiles_PileClickedAsync; _model.StockPile !.StockClickedAsync += StockPile_StockClickedAsync; }
private readonly FlinchGameContainer _gameContainer; //if not needed, delete. public FlinchMainViewModel(CommandContainer commandContainer, FlinchMainGameClass mainGame, FlinchVMData viewModel, BasicData basicData, TestOptions test, IGamePackageResolver resolver, FlinchGameContainer gameContainer ) : base(commandContainer, mainGame, viewModel, basicData, test, resolver) { _mainGame = mainGame; _model = viewModel; _resolver = resolver; _gameContainer = gameContainer; _model.Deck1.NeverAutoDisable = true; _model.PlayerHand1.Maximum = 5; _gameContainer.LoadPlayerPilesAsync = LoadPlayerPilesAsync; }
public PlayerPilesView(FlinchVMData model, FlinchGameContainer gameContainer, IEventAggregator aggregator) { StackLayout stack = new StackLayout() { Orientation = StackOrientation.Horizontal }; var player = gameContainer.PlayerList !.GetWhoPlayer(); _discardGraphics = new BasicMultiplePilesXF <FlinchCardInformation, FlinchGraphicsCP, CardGraphicsXF>(); _discardGraphics.Init(model.DiscardPiles !, ""); _discardGraphics.StartAnimationListener("discard" + player.NickName); stack.Children.Add(_discardGraphics); _stockGraphics = new BasicMultiplePilesXF <FlinchCardInformation, FlinchGraphicsCP, CardGraphicsXF>(); _stockGraphics.Init(model.StockPile !.StockFrame, ""); // i think _stockGraphics.StartAnimationListener("stock" + player.NickName); stack.Children.Add(_stockGraphics); _aggregator = aggregator; Content = stack; }
} = new CustomBasicList <ComputerData>(); //the computer ai needs it. public FlinchMainGameClass(IGamePackageResolver mainContainer, IEventAggregator aggregator, BasicData basicData, TestOptions test, FlinchVMData currentMod, IMultiplayerSaveState state, IAsyncDelayer delay, ICardInfo <FlinchCardInformation> cardInfo, CommandContainer command, FlinchGameContainer gameContainer, FlinchComputerAI ai ) : base(mainContainer, aggregator, basicData, test, currentMod, state, delay, cardInfo, command, gameContainer) { _model = currentMod; _command = command; _gameContainer = gameContainer; _ai = ai; _model.PublicPiles.PileClickedAsync += PublicPiles_PileClickedAsync; _gameContainer.IsValidMove = IsValidMove; }
public FlinchMainView(IEventAggregator aggregator, TestOptions test, FlinchVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <FlinchCardInformation, FlinchGraphicsCP, CardGraphicsXF>(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <FlinchCardInformation, FlinchGraphicsCP, CardGraphicsXF>(); _publicGraphics = new PublicPilesXF(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(FlinchMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_playerHandWPF); _score.AddColumn("In Stock", false, nameof(FlinchPlayerItem.InStock)); int x; for (x = 1; x <= 5; x++) //has to change for flinch. { var thisStr = "Discard" + x; _score.AddColumn(thisStr, false, thisStr); } _score.AddColumn("Stock Left", false, nameof(FlinchPlayerItem.StockLeft)); _score.AddColumn("Cards Left", false, nameof(FlinchPlayerItem.ObjectCount)); //very common. SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("RS Cards", nameof(FlinchMainViewModel.CardsToShuffle)); firstInfo.AddRow("Turn", nameof(FlinchMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(FlinchMainViewModel.Status)); Grid tempGrid = new Grid(); AddLeftOverColumn(tempGrid, 60); AddLeftOverColumn(tempGrid, 40); mainStack.Children.Add(_publicGraphics); mainStack.Children.Add(tempGrid); StackLayout tempStack = new StackLayout(); tempStack.Children.Add(otherStack); ParentSingleUIContainer parent = new ParentSingleUIContainer(nameof(FlinchMainViewModel.PlayerPilesScreen)); tempStack.Children.Add(parent); AddControlToGrid(tempGrid, tempStack, 0, 0); Button endButton = GetGamingButton("End Turn", nameof(FlinchMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; tempStack.Children.Add(endButton); tempStack = new StackLayout(); AddControlToGrid(tempGrid, tempStack, 0, 1); tempStack.Children.Add(_score); tempStack.Children.Add(firstInfo.GetContent); _deckGPile.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 FlinchMainView(IEventAggregator aggregator, TestOptions test, FlinchVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckWPF <FlinchCardInformation, FlinchGraphicsCP, CardGraphicsWPF>(); _score = new ScoreBoardWPF(); _playerHandWPF = new BaseHandWPF <FlinchCardInformation, FlinchGraphicsCP, CardGraphicsWPF>(); _publicGraphics = new PublicPilesWPF(); _publicGraphics.Width = 700; _publicGraphics.Height = 500; StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(FlinchMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_publicGraphics); mainStack.Children.Add(otherStack); StackPanel tempStack = new StackPanel(); var thisLabel = GetDefaultLabel(); thisLabel.Text = "Cards To Reshuffle"; tempStack.Children.Add(thisLabel); otherStack.Children.Add(tempStack); thisLabel = GetDefaultLabel(); thisLabel.SetBinding(TextBlock.TextProperty, nameof(FlinchMainViewModel.CardsToShuffle)); tempStack.Children.Add(thisLabel); _score.AddColumn("In Stock", false, nameof(FlinchPlayerItem.InStock)); int x; for (x = 1; x <= 5; x++) //has to change for flinch. { var thisStr = "Discard" + x; _score.AddColumn(thisStr, false, thisStr); } _score.AddColumn("Stock Left", false, nameof(FlinchPlayerItem.StockLeft)); _score.AddColumn("Cards Left", false, nameof(FlinchPlayerItem.ObjectCount)); //very common. SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(FlinchMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(FlinchMainViewModel.Status)); otherStack.Children.Add(_score); Button endButton = GetGamingButton("End Turn", nameof(FlinchMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; endButton.VerticalAlignment = VerticalAlignment.Top; otherStack.Children.Add(endButton); otherStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(_playerHandWPF); ParentSingleUIContainer parent = new ParentSingleUIContainer() { Name = nameof(FlinchMainViewModel.PlayerPilesScreen) }; mainStack.Children.Add(parent); _deckGPile.Margin = new Thickness(5, 5, 5, 5); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public FlinchComputerAI(FlinchGameContainer gameContainer, FlinchVMData model) { _gameContainer = gameContainer; _model = model; }