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) }); } }
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}"); } }