using System; using System.Collections.Generic; using NadekoBot.Common; using NadekoBot.Extensions; using NadekoBot.Core.Services; namespace NadekoBot.Modules.Games.Common.Trivia { public class TriviaQuestionPool { private readonly IDataCache _cache; private readonly int maxPokemonId; private readonly NadekoRandom _rng = new NadekoRandom(); private TriviaQuestion[] Pool => _cache.LocalData.TriviaQuestions; private IReadOnlyDictionary Map => _cache.LocalData.PokemonMap; public TriviaQuestionPool(IDataCache cache) { _cache = cache; maxPokemonId = 721; //xd } public TriviaQuestion GetRandomQuestion(HashSet exclude, bool isPokemon) { if (Pool.Length == 0) return null; if (isPokemon) { var num = _rng.Next(1, maxPokemonId + 1); return new TriviaQuestion("Who's That Pokémon?", Map[num].ToTitleCase(), "Pokemon", $@"http://nadekobot.me/images/pokemon/shadows/{num}.png", $@"http://nadekobot.me/images/pokemon/real/{num}.png"); } TriviaQuestion randomQuestion; while (exclude.Contains(randomQuestion = Pool[_rng.Next(0, Pool.Length)])) ; return randomQuestion; } } }