コード例 #1
0
        public async Task GetOpeatorSkill(CommandContext ctx, [Description("Operator's name")] string name)
        {
            try
            {
                OpSkill op = await operatorService.GetOperatorSkill(name);

                if (op is null)
                {
                    await ctx.RespondAsync("Operator not found.");

                    return;
                }
                var         itr   = ctx.Client.GetInteractivity();
                List <Page> pages = embedService.CreateOpSkillPages(op);
                await itr.SendPaginatedMessageAsync(ctx.Channel, ctx.User, pages, timeoutoverride : TimeSpan.FromMinutes(5));
            }
            catch (Exception e)
            {
                await ctx.RespondAsync($"An error occurred:{e.Message}");
            }
        }
コード例 #2
0
        public List <Page> CreateOpSkillPages(OpSkill op)
        {
            List <Page> pages = new List <Page>();
            int         i     = 1;

            if (op.Skills != null && op.Skills.Any())
            {
                foreach (Skill skill in op.Skills)
                {
                    string range = AttackRange.GetAttackRange(skill.RangeId);
                    var    embed = new DiscordEmbedBuilder()
                                   .WithTitle($"[{op.Rarity}★] {op.Name} - {skill.SkillName}")
                                   .WithThumbnail($"{s3.Url}skills/skill_icon_{skill.SkillCode}.png", 60, 60)
                                   .AddField("Details", $"{Formatter.Bold("Recovery Type:")} {skill.SpType}\n" +
                                             $"{Formatter.Bold("Sp Cost:")} {skill.SpCost} → {skill.MaxSpCost}", true)
                                   .AddField("\u200b", $"{Formatter.Bold("Skill Type:")} {skill.SkillType }", true);
                    if (!string.IsNullOrWhiteSpace(range))
                    {
                        embed.AddField("Range", range, true);
                    }
                    embed.AddField("Description", $"{skill.SkillDescription}");
                    if (i == 1)
                    {
                        if (op.AllSkills != null && op.AllSkills.Any())
                        {
                            string text = string.Empty;
                            foreach (AllSkill a in op.AllSkills)
                            {
                                text = $"{Formatter.Bold("Lv. " +(a.Level+1)+':')}";
                                if (a.UpgradeCosts != null && a.UpgradeCosts.Any())
                                {
                                    foreach (UpgradeCost u  in a.UpgradeCosts)
                                    {
                                        text += $"{u.Count}x {u.Name},";
                                    }
                                    text = text.Substring(0, text.Count() - 1);
                                }
                                text += "\n";
                            }
                            embed.AddField("Upgrade Costs", text);
                        }
                    }
                    if (skill.MasteryLevels != null && skill.MasteryLevels.Any())
                    {
                        string text = string.Empty;
                        foreach (MasteryLevel m in skill.MasteryLevels)
                        {
                            text = $"{Formatter.Bold("Mastery " + m.Level + ':')}";
                            if (m.UpgradeCosts != null && m.UpgradeCosts.Any())
                            {
                                foreach (UpgradeCost u in m.UpgradeCosts)
                                {
                                    text += $"{u.Count}x {u.Name},";
                                }
                                text = text.Substring(0, text.Count() - 1);
                            }
                            text += "\n";
                            embed.AddField("Mastery Costs", text);
                        }
                    }
                    i++;
                    pages.Add(new Page {
                        Embed = embed.Build()
                    });
                }
            }
            return(pages);
        }