コード例 #1
0
 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("");
     }
 }
コード例 #2
0
        //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);
        }
コード例 #3
0
        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()}.");
        }
コード例 #4
0
        //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()}.");
        }
コード例 #5
0
        //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;
            }
        }
コード例 #6
0
 //method that returns string representation of the card
 public override string ToString()
 {
     return(rank.ToString() + " of " + suit.ToString() + " from deck " + deckNumber.ToString());
 }
コード例 #7
0
        private void LogOpeningOfNewPage()
        {
            var logger = NLog.LogManager.GetCurrentClassLogger();

            logger.Info($"Opened card description page for rank: {rank.ToString()}.");
        }
コード例 #8
0
        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);
        }