public static Special Parse(WZProperty stringWz) { int id; if (!int.TryParse(stringWz.NameWithoutExtension, out id)) { return(null); } Special item = new Special(id); WZProperty specialWz = stringWz.ResolveOutlink($"Item/Special/{id.ToString("D8").Substring(0, 4)}.img/{id.ToString("D8")}"); item.MetaInfo = ItemInfo.Parse(specialWz); item.Description = ItemDescription.Parse(stringWz, id); return(item); }
public static Pet Parse(WZProperty stringWz) { int id; if (!int.TryParse(stringWz.NameWithoutExtension, out id)) { return(null); } Pet p = new Pet(id); WZProperty petEntry = stringWz.ResolveOutlink($"Item/Pet/{id}"); p.frameBooks = petEntry.Children.Where(c => c.NameWithoutExtension != "info").ToDictionary(c => c.NameWithoutExtension, c => FrameBook.Parse(c)); p.Description = ItemDescription.Parse(stringWz, id); p.MetaInfo = ItemInfo.Parse(petEntry); return(p ?? null); }
public static Consume Parse(WZProperty stringWz) { int id; if (!int.TryParse(stringWz.NameWithoutExtension, out id)) { return(null); } Consume item = new Consume(id); WZProperty itemWz = stringWz.ResolveOutlink($"Item/Consume/{id.ToString("D8").Substring(0, 4)}.img/{id.ToString("D8")}"); if (itemWz.Children.Any(c => c.NameWithoutExtension.Equals("info"))) { item.MetaInfo = ItemInfo.Parse(itemWz); } item.Description = ItemDescription.Parse(stringWz, id); return(item); }
public static Cash Parse(WZProperty stringWz) { int id; if (!int.TryParse(stringWz.NameWithoutExtension, out id)) { return(null); } Cash item = new Cash(id); WZProperty itemWz = stringWz.ResolveOutlink($"Item/Cash/{id.ToString("D8").Substring(0, 4)}.img/{id.ToString("D8")}"); if (itemWz != null) { item.MetaInfo = ItemInfo.Parse(itemWz); item.effect = CashEffect.Parse((itemWz?.Resolve("effect") ?? itemWz)); } item.Description = ItemDescription.Parse(stringWz, id); return(item); }
public static Install Parse(WZProperty stringWz) { int id; if (!int.TryParse(stringWz.NameWithoutExtension, out id)) { return(null); } Install item = new Install(id); string itemIdStr = id.ToString("D8"); WZProperty itemWz = stringWz.ResolveOutlink($"Item/Install").Children.FirstOrDefault(b => itemIdStr.StartsWith(b.NameWithoutExtension)).Resolve(itemIdStr); if (itemWz.Children.Any(c => c.NameWithoutExtension.Equals("info"))) { item.MetaInfo = ItemInfo.Parse(itemWz); } item.Description = ItemDescription.Parse(stringWz, id); return(item); }
public static Equip Parse(WZProperty itemString) { string group = itemString.Parent.NameWithoutExtension; int id = int.Parse(itemString.NameWithoutExtension); Equip item = new Equip(id, group); try { WZProperty characterItem = itemString.ResolveOutlink(Path.Combine("Character", group, $"{id.ToString("D8")}.img")); item.MetaInfo = ItemInfo.Parse(characterItem); item.Description = ItemDescription.Parse(itemString, id); bool hasEffectsPerItemType = characterItem.Children.Where(c => c.NameWithoutExtension != "info").All(c => int.TryParse(c.NameWithoutExtension, out int blah)); if (hasEffectsPerItemType) { item.FrameBooksPerWeaponType = characterItem.Children.Where(c => c.NameWithoutExtension != "info") .ToDictionary(c => int.Parse(c.NameWithoutExtension), c => ProcessFrameBooks(c)); item.FrameBooks = item.FrameBooksPerWeaponType.Values.FirstOrDefault() ?? new Dictionary <string, EquipFrameBook>(); } else { item.FrameBooks = ProcessFrameBooks(characterItem); } WZProperty effect = itemString.ResolveOutlink($"Effect/ItemEff/{id}"); if (effect != null) { item.ItemEffects = Effects.Parse(effect); } return(item); } catch (Exception ex) { ErrorCallback($"{ex.Message}{Environment.NewLine}{ex.StackTrace}"); return(null); } }