private static ItemSlotPet ToItemSlot(this PetItemTemplate template) { return(new ItemSlotPet { TemplateID = template.TemplateID }); }
private static ItemSlotPet ToItemSlot(this PetItemTemplate template) { var i = new ItemSlotPet { TemplateID = template.ID }; if (template.Life > 0) { i.DateDead = DateTime.Now.AddDays(template.Life); } return(i); }
private void LoadPets(NameSpaceDirectory nameSpaceDir) { if (nameSpaceDir is null) { throw new ArgumentNullException(nameof(nameSpaceDir)); } if (nameSpaceDir.Files.Count <= 0) { throw new ArgumentException("No files in directory.", nameof(nameSpaceDir)); } foreach (var itemBlob in nameSpaceDir.Files) { var infoProp = ((WzFileProperty)itemBlob.Object)["info"] as WzProperty; var itemTemplate = new PetItemTemplate(Convert.ToInt32(itemBlob.Name.Split('.')[0])) { Hungry = infoProp.GetInt32("hungry"), Life = infoProp.GetInt32("life"), NameTag = infoProp.GetInt32("nameTag"), ChatBalloon = infoProp.GetInt32("chatBalloon"), EvolReqItemID = infoProp.GetInt32("evolReqItemID"), EvolNo = infoProp.GetInt32("evolNo"), EvolReqPetLvl = infoProp.GetInt32("evolReqPetLvl"), LimitedLife = infoProp.GetInt32("limitedLife"), Permanent = infoProp.GetInt32("permanent") > 0, AutoReact = infoProp.GetInt32("autoReact") > 0, NoRevive = infoProp.GetInt32("noRevive") > 0, NoMoveToLocker = infoProp.GetInt32("noMoveToLocker") > 0, InteractByUserAction = infoProp.GetInt32("interactByUserAction") > 0, }; itemTemplate.Evol = new int[itemTemplate.EvolNo]; itemTemplate.EvolProb = new int[itemTemplate.EvolNo]; for (var i = 0; i < itemTemplate.Evol.Length; i++) { var num = i + 1; itemTemplate.Evol[i] = infoProp.GetInt32("evol" + num); itemTemplate.EvolProb[i] = infoProp.GetInt32("evolProb" + num); } FinishTemplate(itemTemplate, infoProp); InsertItem(itemTemplate); } }
public static ItemTemplate Parse(int templateId, PackageCollection collection) { WZProperty prop = null; ItemTemplate item = null; var type = templateId / 1000000; var subType = templateId % 1000000 / 10000; var header = templateId / 10000; switch (type) { case 1: item = new ItemEquipTemplate(); prop = collection.Resolve("Character").Children .SelectMany(c => c.Children) .FirstOrDefault(c => c.Name == $"{templateId:D8}.img"); break; case 2: prop = collection.Resolve($"Item/Consume/{header:D4}.img/{templateId:D8}"); switch (subType) { case 0: case 1: case 2: case 5: case 21: case 36: case 38: case 45: item = new StatChangeItemTemplate(); break; case 3: item = new PortalScrollItemTemplate(); break; case 4: item = new UpgradeItemTemplate(); break; case 10: item = new MobSummonItemTemplate(); break; case 12: item = new PetFoodItemTemplate(); break; case 26: item = new TamingMobFoodItemTemplate(); break; case 27: item = new BridleItemTemplate(); break; case 28: case 29: item = new SkillLearnItemTemplate(); break; } break; case 3: prop = collection.Resolve($"Item/Install/{header:D4}.img/{templateId:D8}"); if (subType == 1) { item = new PortableChairItemTemplate(); } break; case 4: prop = collection.Resolve($"Item/Etc/{header:D4}.img/{templateId:D8}"); break; case 5: // TODO switch (subType) { case 0: item = new PetItemTemplate(); prop = collection.Resolve($"Item/Pet/{templateId:D7}.img"); break; } prop = prop ?? collection.Resolve($"Item/Cash/{header:D4}.img/{templateId:D8}"); break; } if (item == null) { item = new ItemBundleTemplate(); } item.Parse(templateId, prop); return(item); }