using EllieBot.Modules.Games.Quests; namespace EllieBot.Modules.Games; public partial class Games { public class QuestCommands : EllieModule<QuestService> { [Cmd] public async Task QuestLog() { var now = DateTime.UtcNow; var quests = await _service.GetUserQuestsAsync(ctx.User.Id, now); var embed = CreateEmbed() .WithOkColor() .WithTitle(GetText(strs.quest_log)); var allDone = quests.All(x => x.UserQuest.IsCompleted); var tmrw = now.AddDays(1).Date; var desc = GetText(strs.dailies_reset(TimestampTag.FromDateTime(tmrw, TimestampTagStyles.Relative))); if (allDone) desc = GetText(strs.dailies_done) + "\n" + desc; embed.WithDescription(desc); foreach (var res in quests) { if (res.Quest is null) continue; embed.AddField( (res.UserQuest.IsCompleted ? IQuest.COMPLETED : IQuest.INCOMPLETE) + " " + res.Quest.Name, $"{res.Quest.Desc}\n\n" + res.Quest.ToString(res.UserQuest.Progress), true); } await Response().Embed(embed).SendAsync(); } } }