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"); }
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); } }