Exemple #1
0
        private bool ChangeCardTrigger(Player player = null)
        {
            if (ChangeDeck.Count == 0)
            {
                ChangeDeck = InitChangeDeck();
            }
            if (player == null)
            {
                while (true)
                {
                    Console.WriteLine("请输入使用机会卡的玩家ID:(Exit 退出)");
                    string playerId = Console.ReadLine().Trim();
                    if (string.Equals(playerId, "exit", StringComparison.OrdinalIgnoreCase))
                    {
                        return(false);
                    }
                    player = Players.FirstOrDefault(p => p.Id == playerId || string.Equals(p.Name, playerId, StringComparison.OrdinalIgnoreCase));
                    if (player == null)
                    {
                        Console.WriteLine("该玩家不存在。");
                        continue;
                    }
                    break;
                }
            }
            int cardNumber = PickChangeCard();

            Console.WriteLine($"触发的命运卡ID为:{cardNumber}");

            if (ChangeDeck.Contains(cardNumber))
            {
                ChangeDeck.Remove(cardNumber);
                ChangeUsed.Add(cardNumber);
                GameLogs changeCardTrigger = new GameLogs()
                {
                    ID                = GetLogID(),
                    Type              = LogEventType.ChangeCardTrigger,
                    PlayerName        = player.Name,
                    ChangeCardTrigger = cardNumber,
                    Info              = "触发命运卡",
                    Round             = Round,
                    currentPlayer     = currentPlayer
                };
                AddLog(changeCardTrigger);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #2
0
        private bool ChanceCardUse()
        {
            Player player = new Player();

            while (true)
            {
                Console.WriteLine("请输入使用机会卡的玩家ID:(Exit 退出)");
                string playerId = Console.ReadLine().Trim();
                if (string.Equals(playerId, "exit", StringComparison.OrdinalIgnoreCase))
                {
                    return(false);
                }
                player = Players.FirstOrDefault(p => p.Id == playerId || string.Equals(p.Name, playerId, StringComparison.OrdinalIgnoreCase));
                if (player == null)
                {
                    Console.WriteLine("该玩家不存在。");
                    continue;
                }
                break;
            }
            int cardNumber = -1;

            while (true)
            {
                Console.WriteLine($"玩家持有机会卡 {player.ChanceCards.Count} 张");
                foreach (var c in player.ChanceCards)
                {
                    Console.Write($"{c} ");
                }
                Console.WriteLine();
                if (player.ChanceCards.Count == 0)
                {
                    Console.WriteLine("无法使用机会卡。");
                    break;
                }

                Console.WriteLine("请输入机会卡ID:(Exit 退出)");
                bool notExit = ReadIntNumber(out cardNumber);
                if (!notExit)
                {
                    return(false);
                }
                if (player.ChanceCards.Contains(cardNumber))
                {
                    break;
                }
                Console.WriteLine("玩家不持有该卡。");
            }

            if (player.ChanceCards.Contains(cardNumber))
            {
                player.ChanceCards.Remove(cardNumber);
                ChanceUsed.Add(cardNumber);
                ChanceUsed = ChangeUsed.OrderBy(x => x).ToList();
                GameLogs chanceCardLossLog = new GameLogs()
                {
                    ID            = GetLogID(),
                    Type          = LogEventType.ChanceCardUse,
                    PlayerName    = player.Name,
                    ChanceCardUse = cardNumber,
                    Info          = "使用机会卡",
                    Round         = Round,
                    currentPlayer = currentPlayer
                };
                AddLog(chanceCardLossLog);
                return(true);
            }
            else
            {
                return(false);
            }
        }