예제 #1
0
        private string GenerateWikiLink(string skill)
        {
            var newSkill = DemonRetriever.FixSkillsNamedAsDemons(skill);

            newSkill = "[" + newSkill + "](https://dx2wiki.com/index.php/" + Uri.EscapeUriString(newSkill) + ")";
            return(newSkill);
        }
예제 #2
0
        public Embed WriteToDiscord()
        {
            //Perform some fixes on values before exporting

            Name    = DemonRetriever.FixSkillsNamedAsDemons(Name);
            Element = char.ToUpper(Element[0]) + Element.Substring(1);

            if (Sp == "")
            {
                Sp = "-";
            }

            Description = Description.Replace("\\n", "\n") + InnateFrom + TransferrableFrom;

            var url       = "https://dx2wiki.com/index.php/" + Uri.EscapeDataString(Name.Replace("[", "(").Replace("]", ")")).Replace("(", "%28").Replace(")", "%29");
            var thumbnail = "https://teambuilder.dx2wiki.com/Images/Spells/" + Uri.EscapeDataString(Element) + ".png";

            //Generate our embeded message and return it
            var eb = new EmbedBuilder();

            eb.WithTitle(Name);
            eb.AddField("Element: ", Element, true);
            eb.AddField("Cost: ", Cost, true);
            eb.AddField("Target: ", Target, true);
            eb.AddField("Sp: ", Sp, true);
            if (!string.IsNullOrEmpty(Nicknames))
            {
                eb.WithFooter("Nicknames: " + Nicknames.Replace(",", ", "));
            }
            eb.WithDescription(Description);
            eb.WithUrl(url);
            eb.WithThumbnailUrl(thumbnail);
            return(eb.Build());
        }
예제 #3
0
        private string GenerateSkillWikiLink(string skill)
        {
            var newDemon = DemonRetriever.FixSkillsNamedAsDemons(skill);

            if (newDemon == "")
            {
                return("");
            }

            newDemon = "[" + newDemon.Replace("(", "").Replace(")", "") + "](https://dx2wiki.com/index.php/" + Uri.EscapeUriString(newDemon.Replace("[", "(").Replace("]", ")")).Replace("(", "%28").Replace(")", "%29") + ")";
            return(newDemon);
        }
예제 #4
0
        public async override Task ReadyAsync()
        {
            var demonsDt = await GetCSV("https://raw.githubusercontent.com/Alenael/Dx2DB/master/csv/SMT Dx2 Database - Demons.csv");

            var tempDemons = new List <Demon>();

            foreach (DataRow row in demonsDt.Rows)
            {
                tempDemons.Add(DemonRetriever.LoadDemon(row));
            }
            Demons = tempDemons;
        }
예제 #5
0
        //Loads our Skill from a DataGridRow
        private static Skill LoadSkill(DataRow row)
        {
            var name = row["Name"] is DBNull ? "" : (string)row["Name"];

            var nicknames     = row["Nickname"] is DBNull ? "" : (string)row["Nickname"];
            var nicknamesList = new List <string>();

            if (nicknames.Contains(","))
            {
                var nicknameList = nicknames.Split(",");
                foreach (var nickname in nicknameList)
                {
                    nicknamesList.Add(nickname.Trim());
                }
            }
            else
            {
                nicknamesList.Add(nicknames.Trim());
            }

            var skill = new Skill
            {
                Name             = name,
                Element          = row["Element"] is DBNull ? "" : (string)row["Element"],
                Cost             = row["Cost"] is DBNull ? "" : (string)row["Cost"],
                Description      = row["Description"] is DBNull ? "" : (string)row["Description"],
                Target           = row["Target"] is DBNull ? "" : (string)row["Target"],
                Sp               = row["Skill Points"] is DBNull ? "" : (string)row["Skill Points"],
                ExtractExclusive = row["ExtractExclusive"] != null ? false : (bool)row["ExtractExclusive"],
                DuelExclusive    = row["DuelExclusive"] != null ? false : (bool)row["DuelExclusive"],
                ExtractTransfer  = row["ExtractTransfer"] != null ? false : (bool)row["ExtractTransfer"],
                UseLimit         = row["UseLimit"] is DBNull ? "" : (string)row["UseLimit"],
                Nicknames        = nicknames,
                NicknamesList    = nicknamesList
            };

            skill.BuildSkill(DemonRetriever.GetDemonsWithSkill(name));
            skill.BuildInnateSKill(DemonRetriever.GetDemonsWithInnateSkill(name));

            return(skill);
        }
예제 #6
0
        //Loads our Skill from a DataGridRow
        private static Skill LoadSkill(DataRow row)
        {
            var name = row["Name"] is DBNull ? "" : (string)row["Name"];

            var skill = new Skill
            {
                Name             = name,
                Element          = row["Element"] is DBNull ? "" : (string)row["Element"],
                Cost             = row["Cost"] is DBNull ? "" : (string)row["Cost"],
                Description      = row["Description"] is DBNull ? "" : (string)row["Description"],
                Target           = row["Target"] is DBNull ? "" : (string)row["Target"],
                Sp               = row["Skill Points"] is DBNull ? "" : (string)row["Skill Points"],
                ExtractExclusive = row["ExtractExclusive"] != null ? false : (bool)row["ExtractExclusive"],
                DuelExclusive    = row["DuelExclusive"] != null ? false : (bool)row["DuelExclusive"],
                ExtractTransfer  = row["ExtractTransfer"] != null ? false : (bool)row["ExtractTransfer"]
            };

            skill.BuildSKill(DemonRetriever.GetDemonsWithSkill(name));

            return(skill);
        }
예제 #7
0
        public Embed WriteToDiscord()
        {
            var url       = "https://dx2wiki.com/index.php/" + Uri.EscapeDataString(Name);
            var thumbnail = "https://raw.githubusercontent.com/Alenael/Dx2DB/master/Images/Demons/" + Uri.EscapeDataString(Name.Replace("☆", "")) + ".jpg";

            var eb = new EmbedBuilder();

            eb.WithTitle(Name);

            var resist = "";

            if (Phys != "")
            {
                resist += " | Phys: " + Phys + " ";
            }

            if (Fire != "")
            {
                resist += " | Fire: " + Fire + " ";
            }

            if (Ice != "")
            {
                resist += " | Ice: " + Ice + " ";
            }

            if (Elec != "")
            {
                resist += " | Elec: " + Elec + " ";
            }

            if (Force != "")
            {
                resist += " | Force: " + Force + " ";
            }

            if (Light != "")
            {
                resist += " | Light: " + Light + " ";
            }

            if (Dark != "")
            {
                resist += " | Dark: " + Dark;
            }

            if (resist.Length > 0)
            {
                resist = resist.Remove(0, 3);
            }

            var panelInfo1 = "";
            var panelInfo2 = "";
            var panelInfo3 = "";
            var panelInfo4 = "";

            if (Panel1 != "")
            {
                panelInfo1 = "1: " + Panel1 + " " + Panel1Stats + "\n";
            }

            if (Panel2 != "")
            {
                panelInfo2 = "2: " + Panel2 + " " + Panel2Stats + "\n";
            }

            if (Panel3 != "")
            {
                panelInfo3 = "3: " + Panel3 + " " + Panel3Stats + "\n";
            }

            if (Panel4 != "")
            {
                panelInfo4 = "4: " + Panel4 + " " + Panel4Stats + "\n\n";
            }

            var clear  = "C: " + GenerateSkillWikiLink(AwakenC) + "\n";
            var red    = "R: " + GenerateSkillWikiLink(AwakenR) + " | " + GenerateSkillWikiLink(GachaR) + "\n";
            var yellow = "Y: " + GenerateSkillWikiLink(AwakenY) + " | " + GenerateSkillWikiLink(GachaY) + "\n";
            var teal   = "T: " + GenerateSkillWikiLink(AwakenT) + " | " + GenerateSkillWikiLink(GachaT) + "\n";
            var purple = "P: " + GenerateSkillWikiLink(AwakenP) + " | " + GenerateSkillWikiLink(GachaP) + "\n\n";

            if (AwakenC == "")
            {
                clear = "";
            }

            if (red.EndsWith(" | \n"))
            {
                red = red.Replace(" | ", "");
            }

            if (AwakenR == "")
            {
                red = "";
            }

            if (yellow.EndsWith(" | \n"))
            {
                yellow = yellow.Replace(" | ", "");
            }

            if (AwakenY == "")
            {
                yellow = "";
            }

            if (teal.EndsWith(" | \n"))
            {
                teal = teal.Replace(" | ", "");
            }

            if (AwakenT == "")
            {
                teal = "";
            }

            if (purple.EndsWith(" | \n\n"))
            {
                purple = purple.Replace(" | ", "");
            }

            if (AwakenP == "")
            {
                purple = "";
            }

            var skill3 = "";

            if (Skill3 != "")
            {
                skill3 = GenerateSkillWikiLink(Skill3) + "\n";
            }

            eb.AddField("Skills:",
                        GenerateSkillWikiLink(Skill1) + "\n" +
                        GenerateSkillWikiLink(Skill2) + "\n" +
                        skill3, true);

            eb.AddField("Awaken | Gacha:",
                        clear +
                        red +
                        yellow +
                        teal +
                        purple, true);

            eb.AddField("Resists", resist, false);

            if (panelInfo1 != "")
            {
                eb.AddField("Panels", panelInfo1 + panelInfo2 + panelInfo3 + panelInfo4, true);
            }

            var demonCount = DemonRetriever.Demons.Count();

            var fusionUrls = "";

            if (Negotiation)
            {
                fusionUrls += "Only available via Negotiation.";
            }
            else if (Exchangeable)
            {
                fusionUrls += "Only available via an Exchange.";
            }
            else
            {
                fusionUrls += "[Used In Fusions](" + GetFusionUrl("fusion") + ")\n";

                if (MultiFusion || !Gacha)
                {
                    fusionUrls += "[How To Fuse](" + GetFusionUrl("fission") + ")";
                }
            }

            eb.AddField("Stats", "HP: " + HP + " | " +
                        "Vit: " + Vit + " (" + DemonRetriever.GetMyRank(Name).Vit + "/" + demonCount + ")\n" +
                        "Str: " + Str + " (" + DemonRetriever.GetMyRank(Name).Str + "/" + demonCount + ") | " +
                        "Mag: " + Mag + " (" + DemonRetriever.GetMyRank(Name).Mag + "/" + demonCount + ")\n" +
                        "Agi: " + Agi + " (" + DemonRetriever.GetMyRank(Name).Agility + "/" + demonCount + ") | " +
                        "Luck: " + Luck + " (" + DemonRetriever.GetMyRank(Name).Luck + "/" + demonCount + ")\n\n" +
                        fusionUrls
                        , true);

            var nicknames = "";

            if (!string.IsNullOrEmpty(Nicknames))
            {
                nicknames = " | Nicknames: " + Nicknames.Replace(",", ", ");
            }

            //Other Info
            eb.WithFooter(
                "Race: " + Race +
                " | Grade: " + Grade +
                " | Rarity: " + Rarity +
                " | Ai: " + Ai +
                nicknames);
            eb.WithColor(Color.Red);
            eb.WithUrl(url);
            eb.WithThumbnailUrl(thumbnail);
            return(eb.Build());
        }