private static IEnumerable <CardRequirement> GetCardCountRequirements() { var cardType = ConsoleUtility.GetUserInputRequiredValue("What type of card count is changing?", "Ally", "Adversary", "Mastermind", "Henchman", "Bystander"); var changesBasedOnPlayerCount = ConsoleUtility.GetUserInputBool("Does the card count change based on number of players?"); if (!changesBasedOnPlayerCount) { int additionalSets = ConsoleUtility.GetUserInputInt("Additional sets: "); yield return(cardType switch { "Ally" => new CardRequirement { AdditionalSetCount = additionalSets, CardSetType = CardSetType.CardSetAlly }, "Adversary" => new CardRequirement { AdditionalSetCount = additionalSets, CardSetType = CardSetType.CardSetAdversary }, "Mastermind" => new CardRequirement { AdditionalSetCount = additionalSets, CardSetType = CardSetType.CardSetMastermind }, "Henchman" => new CardRequirement { AdditionalSetCount = additionalSets, CardSetType = CardSetType.CardSetHenchman }, "Bystander" => new CardRequirement { AdditionalSetCount = additionalSets, CardSetType = CardSetType.CardSetBystander }, _ => throw new Exception("Failed to match on cardType") });
public static async ValueTask <IEnumerable <CardRequirement> > GetSingleCardRequirement(GameServiceClient client, int currentGamePackageId) { var result = ConsoleUtility.GetUserInputRequiredValue("What type of requirement is this?", "Count", "AdditionalCards"); if (result == "Count") { return(GetCardCountRequirements()); } if (result == "AdditionalCards") { return(await GetAdditionalCardRequirements(client, currentGamePackageId)); } return(new CardRequirement[] { }); }