//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); }
//event handler of taking a card (cards) from deck event private void DeckRepresentationControl_TakeCardClick(object sender, MainUserEventArgs e) { if (!BlockPossibilityOfTakingCardFromDeck) { deckRepresentationControlClickCounter++; if (deckRepresentationControlClickCounter >= 2) { deckRepresentationControlClickCounter = 0; SendMovementDataToHost(GeneratePerformingAMoveRequestData(false, new List <PlayingCard>(), false)); } } }
//changing card from joker into another or backwards private void ThisPlayerControl_CardJokerClick(object sender, MainUserEventArgs e) { currentCard = e.PlayingCard; if (e.PlayingCard.Rank == CardRanks.Joker && e.WasMadeByJoker == false) { Windows.JokerChange JokerWindow = new Windows.JokerChange() { Owner = this }; JokerWindow.JokerWindowClosing += JokerWindow_OKButtonClick; JokerWindow.ShowDialog(); MemoryManagement.FlushMemory(); } else if (e.WasMadeByJoker == true) { EngineHostDataOperator Operator = new EngineHostDataOperator(); Operator.ChangeJokerBackFromAnotherCard(GenerateJokerChangeBackRequest(e.PlayingCard), ThisPlayerControl, SynchCont); } }
//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); }
//resetting cards selection private void ThisPlayerControl_ResetLabel(object sender, MainUserEventArgs e) { ResetUIAfterMakingMoveOrCancelingMove(); }