private static string GenerateResourceName(CardSuits suit, CardRanks rank) { if (rank == CardRanks.Joker) { return($"{rank.ToString()}_of_none"); } else if (rank != CardRanks.Joker && rank != CardRanks.None) { return($"{rank.ToString()}_of_{suit.ToString()}"); } else { return(""); } }
//control demanding options public bool CheckDemandPossibilities(CardRanks newDemRank, CardSuits newDemSuit, int playerNumber, ref CardRanks demandedRank, ref CardSuits demandedSuit, ref GameStatus status, ref Dictionary <int, SinglePlayerData> PlayersCurrentData) { var logger = NLog.LogManager.GetCurrentClassLogger(); string demandingType = ""; if (Engine.ExtendedLogging) { logger.Info($"+++++++++++++++++++++++++++++++++++++++++++++++++++++++"); logger.Info($"+++++++++++++++++++++++++++++++++++++++++++++++++++++++"); logger.Info($"Demand possibilities checker current gme state: {status.ToString()}."); logger.Info($"+++++++++++++++++++++++++++++++++++++++++++++++++++++++"); logger.Info($"+++++++++++++++++++++++++++++++++++++++++++++++++++++++"); } //can't demand rank and suit at the same time if (newDemRank != CardRanks.None && newDemSuit != CardSuits.None) { string text = "Rank and Suit can not be demanded both at the same time"; logger.Error(text); throw new ArgumentException(text); } //set demanding after placing the card on the table if (newDemRank == CardRanks.None && newDemSuit == CardSuits.None) { demandingType = "none"; demandedRank = CardRanks.None; demandedSuit = CardSuits.None; //status if (status != GameStatus.Battle && status != GameStatus.Stops && status != GameStatus.StopsAndBattle) { status = GameStatus.Standard; } ResetDemandingOptionsForAllPlayers(ref PlayersCurrentData, false); } else if (newDemRank != CardRanks.None && newDemSuit == CardSuits.None) { demandingType = "rank"; SetRankDemandOption(playerNumber, newDemRank, ref demandedRank, ref demandedSuit, ref PlayersCurrentData); //status status = GameStatus.RankDemanding; } else if (newDemRank == CardRanks.None && newDemSuit != CardSuits.None) { demandingType = "suit"; SetSuitDemandOption(playerNumber, newDemSuit, ref demandedRank, ref demandedSuit, ref PlayersCurrentData); //status status = GameStatus.SuitDemanding; } if (Engine.ExtendedLogging) { logger.Info($"Demand possibilities checking done. Demanded rank: {demandedRank.ToString()}, demanded suit: {demandedSuit.ToString()}, type: {demandingType}."); } return(true); }
private void Button_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e) { (sender as WrapPanelSelectableItem).ItemHoovered = Visibility.Visible; var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Info($"New demanded suit: {newDemandedRank.ToString()}."); }
//clicking proper game suit - selection of card suit private void RankButton_Click(object sender, RoutedEventArgs e) { thisRank = (CardRanks)(sender as WrapPanelSelectableItem).Tag; ResetSelectionOfRanks(); (sender as WrapPanelSelectableItem).ItemSelected = Visibility.Visible; var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Info($"New choosen Card rank: {thisRank.ToString()}."); }
//method for establishing demanded rank private void SetRankDemandOption(int playerNumber, CardRanks demRank, ref CardRanks demandedRank, ref CardSuits demandedSuit, ref Dictionary <int, SinglePlayerData> PlayersCurrentData) { bool demandOK = PlayingCard.CanRankBeDemanded(demRank); if (!demandOK) { var logger = NLog.LogManager.GetCurrentClassLogger(); string text = "The rank: " + demRank.ToString() + " can not be demanded"; logger.Error(text); } else { ResetDemandingOptionsForAllPlayers(ref PlayersCurrentData, false); demandedRank = demRank; demandedSuit = CardSuits.None; PlayersCurrentData[playerNumber].ThisPlayerStartedRankDemanding = true; } }
//method that returns string representation of the card public override string ToString() { return(rank.ToString() + " of " + suit.ToString() + " from deck " + deckNumber.ToString()); }
private void LogOpeningOfNewPage() { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Info($"Opened card description page for rank: {rank.ToString()}."); }
private BitmapImage GetImageSourceFromPropertiesObject(CardSuits suit, CardRanks rank) { BitmapImage output = null; try { string name = GenerateResourceName(suit, rank); output = new BitmapImage(new Uri($"pack://application:,,,/CardGraphicsLibraryHandler;component/Resources/{name}.png")); } catch (Exception ex) { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Error($"Error while reading specific card image ({suit.ToString()}, {rank.ToString()}) from resources: {ex.Message}."); } return(output); }