public static GameStep AllPlayers(UserPromptId prompt, int numPlayers) { return(new Dictionary <UserPromptId, int> { { prompt, numPlayers } }); }
public static GameStep OneVsAll(UserPromptId onePrompt, int numPlayers, UserPromptId allPrompt = UserPromptId.Waiting) { return(new Dictionary <UserPromptId, int> { { onePrompt, 1 }, { allPrompt, numPlayers - 1 } }); }
public static Func <User, UserPrompt> ShowScoreBreakdowns( Lobby lobby, string promptTitle, Score.Scope?userScoreBreakdownScope = null, Score.Scope?userScoreScope = null, Score.Scope?leaderboardScope = null, UserPromptId userPromptId = UserPromptId.RevealScoreBreakdowns, bool showPartyLeaderSkipButton = false) { return((User user) => { List <SubPrompt> subPrompts = new List <SubPrompt>(); if (userScoreBreakdownScope.HasValue) { var scoreBreakdowns = user.ScoreHolder.ScoreBreakdowns[userScoreBreakdownScope.Value]; subPrompts.Add(new SubPrompt { Prompt = (scoreBreakdowns.Count == 0) ? Text.NoPointsThisRound:Text.YourPoints, StringList = scoreBreakdowns.Keys.Select((Score.Reason reason) => $"{Score.ReasonDescriptions[reason]}: {scoreBreakdowns[reason]}").ToArray() }); } if (userScoreScope.HasValue) { subPrompts.Add(new SubPrompt { StringList = new string[] { Text.YourScore + ": " + user.ScoreHolder.ScoreAggregates[userScoreScope.Value].ToString() } }); } if (leaderboardScope.HasValue) { var userScoreList = lobby.GetUsersSortedByTopScores(3, leaderboardScope.Value); subPrompts.Add(new SubPrompt { Prompt = Text.TopScores, StringList = userScoreList.Select((User user) => $"{user.DisplayName}: {user.ScoreHolder.ScoreAggregates[Score.Scope.Total]}").ToArray() }); } if (showPartyLeaderSkipButton) { subPrompts.Add(new SubPrompt { Prompt = Text.SkipReveal }); } return new UserPrompt() { UserPromptId = userPromptId, Title = promptTitle, // could access this.Lobby for game specific info SubPrompts = subPrompts.ToArray(), SubmitButtonText = "Continue", SubmitButton = (showPartyLeaderSkipButton) }; }); }