private Page CreateOpDetailPage(OpDetail op, int index) { Elite e = op.Elites[index]; DiscordEmbedBuilder embed = new DiscordEmbedBuilder() .WithTitle($"[{op.Rarity}★] {op.Name}") .AddField($"Level 1 → {e.MaxLevel}", $"{Formatter.Bold("Health:")} {e.Hp} → {e.MaxHp}\n" + $"{Formatter.Bold("Attack:")} {e.Atk} → {e.MaxAtk}\n" + $"{Formatter.Bold("Defense:")} {e.Def} → {e.MaxDef}\n" + $"{Formatter.Bold("Resistance:")} {e.MagicResistance}", true) .AddField("\u200b", $"{Formatter.Bold("Cost:")}{e.Cost}\n" + $"{Formatter.Bold("Block:")} {e.BlockCnt}\n" + $"{Formatter.Bold("Attack Time:")} 100\n" + $"{Formatter.Bold("Respawn Time:")} {e.RespawnTime}\n", true) .AddField("Range", AttackRange.GetAttackRange(op.Elites[index].RangeId), true); string img = string.Empty; switch (index) { case 1: { if (op.OperatorCode.Equals("Amiya")) { embed.WithThumbnail($"{s3.Url}avatars/{op.OperatorCode}_1+.png"); } else { embed.WithThumbnail($"{s3.Url}avatars/{op.OperatorCode}.png"); } break; } case 2: { embed.WithThumbnail($"{s3.Url}avatars/{op.OperatorCode}_2.png"); break; } } if (op.Talents != null && op.Talents.Count > 0) { string talent = string.Empty; foreach (Talent t in op.Talents) { if (t.Phase == index) { talent += $"{Formatter.Bold(t.Name + ':')} {t.Description} (Lvl.1,Potential {t.RequirePotential})\n"; } } if (!string.IsNullOrEmpty(talent)) { talent = talent.Substring(0, talent.Count() - 1); embed.AddField("Talents", talent); } } return(new Page { Embed = embed.Build() }); }
public List <Page> CreateOpDetailPages(OpDetail op, DiscordClient client) { List <DiscordEmoji> emojis = new List <DiscordEmoji> { DiscordEmoji.FromGuildEmote(client, 840489819812921384), DiscordEmoji.FromGuildEmote(client, 840489819481440267), DiscordEmoji.FromGuildEmote(client, 840489819594555414), DiscordEmoji.FromGuildEmote(client, 840489820177563648), DiscordEmoji.FromGuildEmote(client, 840489820924543016) }; int i = 0; string pot = "\u200b"; if (op.Potentials != null && op.Potentials.Any()) { foreach (var p in op.Potentials) { pot += $"{emojis[i]} {p.Desc}\n"; i++; } pot = pot.Substring(0, pot.Length - 1); } Console.WriteLine($"{s3.Url}avatars/{op.OperatorCode}.png"); List <Page> pages = new List <Page>(); DiscordEmbedBuilder embed = new DiscordEmbedBuilder() .WithTitle($"[{op.Rarity}★] {op.Name}") .WithDescription($"{op.ItemUsage}\n{op.ItemDesc}") .WithThumbnail($"{s3.Url}avatars/{op.OperatorCode}.png", 60, 60) .AddField("Detail", $"{Formatter.Bold("Affiliation:")} {TextUtil.ToTitleCase(op.Team)}\n" + $"{Formatter.Bold("Obtain:")} {op.ItemObtainApproach}", true) .AddField("\u200b", $"{Formatter.Bold("Tag:")} {op.TagList}\n" + $"{Formatter.Bold("Position:")} {TextUtil.ToTitleCase(op.Position)}\n" + $"{Formatter.Bold("Class:")} {TextUtil.ToTitleCase(op.Profession)}", true) .AddField("Range", AttackRange.GetAttackRange(op.Elites[0].RangeId), true) .AddField("Effect", op.Description) .AddField($"Level 1 → {op.Elites[0].MaxLevel}", $"{Formatter.Bold("Health:")} {op.Elites[0].Hp} → {op.Elites[0].MaxHp}\n" + $"{Formatter.Bold("Attack:")} {op.Elites[0].Atk} → {op.Elites[0].MaxAtk}\n" + $"{Formatter.Bold("Defense:")} {op.Elites[0].Def} → {op.Elites[0].MaxDef}\n" + $"{Formatter.Bold("Resistance:")} {op.Elites[0].MagicResistance}\n" + $"{Formatter.Bold("Cost:")} {op.Elites[0].Cost}\n" + $"{Formatter.Bold("AttackTime:")} 100\n" + $"{Formatter.Bold("Block:")} {op.Elites[0].BlockCnt}\n" + $"{Formatter.Bold("RespawnTime:")} {op.Elites[0].RespawnTime}\n", true) .AddField("Potentials", pot, true); if (op.Talents != null && op.Talents.Count > 0) { string talent = string.Empty; foreach (Talent t in op.Talents) { if (t.Phase == 0) { talent += $"{Formatter.Bold(t.Name + ':')} {t.Description} (Lv. 1,Potential {t.RequirePotential})\n"; } } if (!string.IsNullOrEmpty(talent)) { talent = talent.Substring(0, talent.Count() - 1); embed.AddField("Talents", talent); } } pages.Add(new Page { Embed = embed.Build() }); if (op.Elites.ElementAtOrDefault(1) != null) { pages.Add(CreateOpDetailPage(op, 1)); } if (op.Elites.ElementAtOrDefault(2) != null) { pages.Add(CreateOpDetailPage(op, 2)); } return(pages); }
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); }