//method for changing game window view in case of making move private void ResetUIAfterMakingMoveOrCancelingMove() { CardsChoosenByThisPlayer.Clear(); ThisPlayerControl.ResetAllHighlights(); ThisPlayerChoosenCardsControl.EraseCrdsContent(); ResetInternalDemandOptions(); MakeMoveButtonVisible = false; }
//choicement or next card to put on the table private void ThisPlayerControl_AnotherSelectedCardClick(object sender, MainUserEventArgs e) { if (e.NotPermitted == Visibility.Collapsed && e.AlreadySelected == Visibility.Collapsed && CardsChoosenByThisPlayer.Count > 0) { CardsChoosenByThisPlayer.Add(e.PlayingCard); ThisPlayerControl.MarkCardsAsAlreadyChoosen(CardsChoosenByThisPlayer); } ThisPlayerChoosenCardsControl.AssignCardsContent(CardsChoosenByThisPlayer); }
//choicement of first card to put on the table private void ThisPlayerControl_FirstSelectedCardClick(object sender, MainUserEventArgs e) { try { List <PlayingCard> permittedCardsList = new List <PlayingCard>(); MatchingCardsFinder Finder = new MatchingCardsFinder(thisPlayerNumber, e.PlayingCard, false, AlreadyUsedCardsControl.Cards[0], ThisPlayerControl.ButtonCards, GameStateData.CurrentlyDemandedRank, GameStateData.CurrentlyDemandedSuit, GameStateData.CurrentStatusOfTheGame); List <FamiliarCardsData> FamiliarCardsLIst = Finder.FindMatchingCardsInPlayerHand(); foreach (FamiliarCardsData item in FamiliarCardsLIst) { permittedCardsList.Add(item.Card); } permittedCardsList.Add(e.PlayingCard); //make not matching cards gray ThisPlayerControl.HighlightNotMatchingCards(permittedCardsList); //reset list of choosen cards and add the one clicked CardsChoosenByThisPlayer.Clear(); CardsChoosenByThisPlayer.Add(e.PlayingCard); //make one card green ThisPlayerControl.MarkCardsAsAlreadyChoosen(CardsChoosenByThisPlayer); //demanding windows if (e.PlayingCard.Rank == CardRanks.Jack) { RankDemandingWindowHandle(e.PlayingCard.Suit); } else if (e.PlayingCard.Rank == CardRanks.Ace) { SuitDemandingWindowHandle(); } MakeMoveButtonVisible = true; } catch (Exception ex) { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Info($"Error while trying to choose firs card to put on the table: {ex.Message}."); } ThisPlayerChoosenCardsControl.AssignCardsContent(CardsChoosenByThisPlayer); }