コード例 #1
0
ファイル: Program.cs プロジェクト: silentmark/Wfrp4core-trans
        private static void Wfrp08UpdateData()
        {
            var file = File.ReadAllLines(@"C:\Users\ja\AppData\Local\FoundryVTT\Data\worlds\wfrp4\data\actors.db");
            var data = new List <JObject>();

            foreach (var line in file)
            {
                var actor = JObject.Parse(line);
                data.Add(actor);
                foreach (var item in (JArray)actor["items"])
                {
                    if (item["type"].Value <string>() == "weapon" || item["type"].Value <string>() == "armour" || item["type"].Value <string>() == "ammunition")
                    {
                        if (item["data"]["qualities"] != null && item["data"]["qualities"]["value"] != null)
                        {
                            var quals    = item["data"]["qualities"]["value"].Value <string>().Split(',').Select(x => x.Trim()).ToList();
                            var qualsArr = new JArray();

                            foreach (var qual in quals)
                            {
                                if (!string.IsNullOrEmpty(qual))
                                {
                                    var jQual = new JObject();
                                    jQual["key"]     = TrappingsParser.TranslateQualityFlawReverse(qual.Split(' ')[0]).ToLower();
                                    jQual["name"]    = TrappingsParser.TranslateQualityFlawReverse(qual.Split(' ')[0]).ToLower();
                                    jQual["display"] = qual.Split(' ')[0];
                                    jQual["value"]   = qual.Contains(' ') ? qual.Split(' ')[1] : "";
                                    qualsArr.Add(jQual);
                                }
                            }
                            item["data"]["qualities"]["value"] = qualsArr;
                        }
                        if (item["data"]["flaws"] != null && item["data"]["flaws"]["value"] != null)
                        {
                            var flaws    = item["data"]["flaws"]["value"].Value <string>().Split(',').Select(x => x.Trim()).ToList();
                            var flawsArr = new JArray();
                            foreach (var flaw in flaws)
                            {
                                if (!string.IsNullOrEmpty(flaw))
                                {
                                    var jFlaw = new JObject();
                                    jFlaw["key"]     = TrappingsParser.TranslateQualityFlawReverse(flaw.Split(' ')[0]).ToLower();
                                    jFlaw["name"]    = TrappingsParser.TranslateQualityFlawReverse(flaw.Split(' ')[0]).ToLower();
                                    jFlaw["display"] = flaw.Split(' ')[0];
                                    jFlaw["value"]   = flaw.Contains(' ') ? flaw.Split(' ')[1] : "";
                                    flawsArr.Add(jFlaw);
                                }
                            }

                            item["data"]["flaws"]["value"] = flawsArr;
                        }
                    }
                }
            }
            foreach (var pack in data)
            {
                File.AppendAllLines(@"C:\Users\ja\AppData\Local\FoundryVTT\Data\worlds\wfrp4\data\actors-new.db",
                                    new[] { JsonConvert.SerializeObject(pack, Formatting.None) });
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: silentmark/Wfrp4core-trans
        private static void ProcessTrappings()
        {
            var fileName = $@"{Configuration.GetSection("OutputPath").Value}\wfrp4e.trappings.desc.json";

            if (File.Exists(fileName))
            {
                var parser       = new TrappingsParser();
                var descriptions = JsonConvert.DeserializeObject <List <Entry> >(File.ReadAllText(fileName));
                parser.Parse(descriptions);
            }
            else
            {
                Console.WriteLine($"Nie odnaleziono pliku {fileName}");
            }
        }