示例#1
0
        public static string GetCardMoveTypeString(CardMoveType moveType)
        {
            switch (moveType)
            {
            case CardMoveType.DiscardCard:
                return("discarded");

            case CardMoveType.PlayCard:
                return("played");

            case CardMoveType.ToHandFromDiscard:
                return("moved to hand from discard");

            case CardMoveType.ToPlayFromDiscard:
                return("moved to play from discard");

            case CardMoveType.ToDiscardFromPlay:
                return("moved to discard from play");

            case CardMoveType.ToHandFromPlay:
                return("moved to hand from play");
            }

            return("undefined");
        }
示例#2
0
        public static void Run(BotMain bot, BotCommandController commandController,
                               string[] rawTerms, string[] terms, string characterName, string channel,
                               UserGeneratedCommand command, CardMoveType moveType)
        {
            CardCommandOptions options = new CardCommandOptions(commandController, terms, characterName);

            if (!(moveType == CardMoveType.DiscardCard || moveType == CardMoveType.PlayCard))
            {
                options.redraw = false;
            }

            string customDeckString           = Utils.GetCustomDeckName(characterName);
            string deckTypeString             = Utils.GetDeckTypeStringHidePlaying(options.deckType, customDeckString);
            string cardDrawingCharacterString = Utils.GetCharacterStringFromSpecialName(options.characterDrawName);

            int numberDiscards = 0;

            string actionString = "";

            switch (moveType)
            {
            case CardMoveType.DiscardCard:
                actionString = bot.DiceBot.DiscardCards(options.moveCardsList, options.all, channel, options.deckType, options.characterDrawName, out numberDiscards);
                break;

            case CardMoveType.PlayCard:
                actionString = bot.DiceBot.PlayCards(options.moveCardsList, options.all, channel, options.deckType, options.characterDrawName, out numberDiscards);
                break;

            case CardMoveType.ToHandFromDiscard:
                actionString = bot.DiceBot.TakeCardsFromDiscard(options.moveCardsList, options.all, channel, options.deckType, options.characterDrawName, out numberDiscards);
                break;

            case CardMoveType.ToPlayFromDiscard:
                actionString = bot.DiceBot.PlayCardsFromDiscard(options.moveCardsList, options.all, channel, options.deckType, options.characterDrawName, out numberDiscards);
                break;

            case CardMoveType.ToHandFromPlay:
                actionString = bot.DiceBot.TakeCardsFromPlay(options.moveCardsList, options.all, channel, options.deckType, options.characterDrawName, out numberDiscards);
                break;

            case CardMoveType.ToDiscardFromPlay:
                actionString = bot.DiceBot.DiscardCardsFromPlay(options.moveCardsList, options.all, channel, options.deckType, options.characterDrawName, out numberDiscards);
                break;
            }

            if (numberDiscards > 1 || numberDiscards == 0)
            {
                options.cardsS = "s";
            }
            string messageOutput = "[i]" + cardDrawingCharacterString + ": " + deckTypeString + "Card" + options.cardsS +
                                   " " + Utils.GetCardMoveTypeString(moveType) + "[/i] " + actionString;
            string trueDraw           = "";
            string privateMessageDraw = "";

            if (options.redraw)
            {
                messageOutput     += "\n [i]Redrawn:[/i] " + bot.DiceBot.DrawCards(numberDiscards, options.jokers, options.deckDraw, channel, options.deckType, options.characterDrawName, options.secretDraw, out trueDraw);
                privateMessageDraw = "[i]Redrawn:[/i] " + trueDraw;
            }

            if (options.secretDraw && options.redraw && !(options.characterDrawName == DiceBot.DealerName || options.characterDrawName == DiceBot.BurnCardsName || options.characterDrawName == DiceBot.DiscardName))
            {
                bot.SendPrivateMessage(privateMessageDraw, characterName);
            }

            if (options.secretDraw)
            {
                string redrawSecretString = options.redraw ? " (and redrew)" : "";
                string newMessageOutput   = "[i]" + cardDrawingCharacterString + ": " + deckTypeString + numberDiscards + " Card" + options.cardsS + " " + Utils.GetCardMoveTypeString(moveType) + " (secret)" + redrawSecretString + "[/i] ";
                bot.SendMessageInChannel(newMessageOutput, channel);
            }
            else
            {
                bot.SendMessageInChannel(messageOutput, channel);
            }
        }