//event handler for updating the window private void DataPlaceholder_UpdteTheGame(object sender, UpdateGameWindowEventArgs e) { if (thisPlayerID == e.ReceivedData.PlayerID) { SynchCont.Post(_ => ThisUserControlsEnabler.EnableOrDisableThisUserControls(ref ThisPlayerControl, ref DeckRepresentationControl, e.ReceivedData.CurrentPlayerNumber), null); //assign cards to controls CardsToControlsAssigner CardsAssigner = new CardsToControlsAssigner(this); SynchCont.Post(_ => CardsAssigner.AssignPlayersCards(PlayersControlsMapper, e.ReceivedData.DataOfThisPlayer.ThisPlayerCards, e.ReceivedData.DataOfOtherPlayers), null); SynchCont.Post(_ => CardsAssigner.AssignAmountOfCardsInDeck(e.ReceivedData.AmountOfCardsInDeck), null); SynchCont.Post(_ => CardsAssigner.AddMultipleCardsToUsedCardsControl(e.ReceivedData.NewCardsOnTheTableList), null); //assign properties values - those which implements INotifyPropertyChange interface SynchCont.Post(_ => AssignProperties(e.ReceivedData.CurrentGameStatusData), null); //move posibilities SynchCont.Post(_ => AssignPlayersMovePosibilities(e.ReceivedData.DataOfThisPlayer), null); //players rectangles colors SynchCont.Post(_ => PlayersRectanglesColorAssigner.AssignPlayersRectanglesColors(ref ActivePlayerRectangles, e.ReceivedData.CurrentPlayerNumber), null); SynchCont.Post(_ => OpenMatchingCardInBattleWindow(MatchingCardInBattleMode, AlreadyUsedCardsControl.Cards[0]), null); } SynchCont.Post(_ => MemoryManagement.FlushMemory(), null); }
//assigning cards to the controls in the window at the game startup private void AssignCardsOnGameStart(PersonalizedForSpecificPlayerStartGameDataRequest inputData) { CardsToControlsAssigner CardsAssigner = new CardsToControlsAssigner(this); CardsAssigner.AssignPlayersCards(PlayersControlsMapper, inputData.DataOfThisPlayer.ThisPlayerCards, inputData.DataOfOtherPlayers); CardsAssigner.AssignAmountOfCardsInDeck(inputData.AmountOfCardsInDeck); CardsAssigner.AddOneCardToUsedCardsControl(inputData.NewCardsOnTheTableList[0]); }