public int SetUpPlayers() { var userInteraction = new UserInteractionBuilder <int>() .Request ("How many players?") .ResponseInterpretations (new ResponseInterpretation <int>("default", vp => ValidateNumberOfPlayers(vp))) .Build(); return(HandleResponse(userInteraction)); }
public Deployment GetArmyTransfer(Deployment deployment) { var userInteraction = new UserInteractionBuilder <Deployment>() .Request("How many armies do you wish to transfer?") .ResponseInterpretations( new ResponseInterpretation <Deployment>("default", vp => ValidateArmyTransfer(vp))) .Deployment(deployment) .Build(); return(HandleResponse(userInteraction)); }
private List <Card> TradeCards(List <Card> cards) { var userInteraction = new UserInteractionBuilder <List <Card> >() .Request("Select card IDs for trade, separated by a comma") .ResponseInterpretations( new ResponseInterpretation <List <Card> >("q", vp => cards.Count >= 5 ? ProhibitQuit(vp) : Quit(vp)), new ResponseInterpretation <List <Card> >("default", vp => ValidateCardTrade(vp))) .Cards(cards) .Build(); return(HandleResponse(userInteraction)); }
private bool GetDecisionToTrade() { var userInteraction = new UserInteractionBuilder <bool>() .Request( "Trade:", "Press 'y' to trade or 'n' to skip") .ResponseInterpretations( new ResponseInterpretation <bool>("y", Accept), new ResponseInterpretation <bool>("n", Decline), new ResponseInterpretation <bool>("default", ResponseNotRecognised)) .Build(); return(HandleResponse(userInteraction)); }
public Deployment GetFortificationParameters(Player player, CountryInfo[] countries) { var userInteraction = new UserInteractionBuilder <Deployment>() .Request( "Fortify:", "- [<x> armies from <country_A> to <country_B>]", "- [q]: to skip") .ResponseInterpretations( new ResponseInterpretation <Deployment>("q", Quit), new ResponseInterpretation <Deployment>("default", vp => ValidateFortificationParameters(vp))) .Player(player) .Countries(countries) .Build(); return(HandleResponse(userInteraction)); }
public Deployment GetAttackParameters(Player player, CountryInfo[] countries, Deployment previousAttackParameters) { var userInteraction = new UserInteractionBuilder <Deployment>() .Request( "Attack:", "- [Enter]: continue with same attack parameters", "- [<x> armies from <country_A> to <country_B>]", "- [q]: to skip") .ResponseInterpretations( new ResponseInterpretation <Deployment>("q", Quit), new ResponseInterpretation <Deployment>("", vp => ValidatePreviousAttackParameters(vp)), new ResponseInterpretation <Deployment>("default", vp => ValidateNewAttackParameters(vp))) .Player(player) .Countries(countries) .Deployment(previousAttackParameters) .Build(); return(HandleResponse(userInteraction)); }
private bool GetDecisionToView(List <Card> cards) { if (!cards.Any()) { return(false); } var userInteraction = new UserInteractionBuilder <bool>() .Request( "View cards:", "Press 'y' to view or 'n' to skip") .ResponseInterpretations( new ResponseInterpretation <bool>("y", Accept), new ResponseInterpretation <bool>("n", Decline), new ResponseInterpretation <bool>("default", ResponseNotRecognised)) .Cards(cards) .Build(); return(HandleResponse(userInteraction)); }