public ExecutionResult MainMenuMessage(List <DrawGame> games, Player player) { var filteredList = games.Where(a => a.Metadata?.Category != Messages.MiniGames).ToList(); if (filteredList == null) { filteredList = new List <DrawGame>(); } List <string> options = new List <string>(); options = filteredList.Select(a => a.GameName).ToList(); options.Add(Messages.MiniGames); options.Add(Messages.ContactUs); options.Add(Messages.LoadGame); options.Add($"{Messages.Achievements} - ({AchievementService.CountAchievementsCompletedForGames(games, player)}/{AchievementService.CountTotalAchievements(games)})"); var execResult = new ExecutionResult(); var messages = new List <MessageResult>(); messages.Add(new MessageResult { Message = "All characters in this game are 18+! All characters are random, and not based on any pre-existing characters. These games feature adult content, including mild fetishes." }); messages.Add(new MessageResult { Message = "Games Available:" }); messages.AddRange(filteredList.Select(a => new MessageResult { Message = a.GameName + " - " + a.Metadata?.Description })); messages.Add( new MessageResult { Message = "Enter a game to play!" }); execResult.OptionsToShow = options; execResult.MessagesToShow = messages; return(execResult); }