static LootDataTables() { var bytes = LootData.loot; var stream = new MemoryStream(bytes, false); var reader = new JsonTextReader(new StreamReader(stream)); tables = JsonSerializer.Create().Deserialize <LootTables>(reader); LootTypes = new SortableBindingList <LootTypeDescription>(); LootTypes.Add(new LootTypeDescription { Type = LootType.Money, Description = "Money" }); LootTypes.Add(new LootTypeDescription { Type = LootType.ArtObjects, Description = "Art Object" }); LootTypes.Add(new LootTypeDescription { Type = LootType.Gemstones, Description = "Gem Stone" }); LootTypes.Add(new LootTypeDescription { Type = LootType.MagicItems, Description = "Magic Item" }); }
public void LoadMonsters() { Type resType = Type.GetType("CampaignData.BookData"); PropertyInfo[] resProps = resType.GetProperties(BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.GetProperty); Monsters = new SortableBindingList <Monster>(); foreach (PropertyInfo info in resProps) { var value = info.GetValue(null, null); if (value is byte[]) { byte[] bytes = (byte[])value; var stream = new MemoryStream(bytes, false); var reader = new JsonTextReader(new StreamReader(stream)); var loadedmon = JsonSerializer.Create().Deserialize <List <Monster> >(reader); Monsters.AddRange(loadedmon); } } //Append the custom monsters if (customMonsters != null) { foreach (var monster in customMonsters) { Monsters.Add(monster); } } //Build our quick filtering dictionary FilterDic = new Dictionary <string, string>(); foreach (var monster in Monsters) { if (!FilterDic.ContainsKey(monster.Name.StripPunctuationAndSpaces().ToUpper())) { FilterDic.Add(monster.Name.StripPunctuationAndSpaces().ToUpper(), monster.Name); } } }
public void UpdateCustomMonsters(SortableBindingList <Monster> CustomMonsters) { customMonsters = CustomMonsters; LoadMonsters(); onMonstersUpdated?.Invoke(this); }
public Encounter() { monsters = new SortableBindingList <Monster>(); }