public static ItemInstance MakeNaturalWeapon(int wielderSize) { ItemMaterial itemMaterial = MaterialHandler.GetMaterial("Flesh"); BaseItemType baseItem = new BaseItemType("Weapon", "A claw, fist or psuedopod.", "A claw, fist or psuedopod.", "Natural Weapon", "Natural Weapon", "Hand1", wielderSize * 40.0f, itemMaterial, "Weapon", "Martial Arts", "strikes", null, 0, 0); return(new ItemInstance(baseItem, new Vector2Int(-1, -1), true)); }
public static List <BaseItemType> LoadDrink() { List <BaseItemType> drinks = new List <BaseItemType>(); string filePath = Directory.GetCurrentDirectory() + "//Data//Items//Drinks//Drink.xml"; XmlReader reader = XmlReader.Create(filePath); List <IdentifiedItem> identifiedItems = new List <IdentifiedItem>(); string actionWord = "strikes"; string governingSkill = "None"; string category = "None"; while (reader.Read()) { if (reader.Depth == 0 && reader.NodeType == XmlNodeType.Element && !reader.Name.Equals("Items")) { break; } if (reader.Name.Equals("Category") && reader.NodeType == XmlNodeType.Element) { category = reader.ReadElementContentAsString(); } if (reader.Name.Equals("IdentifiedItem") && reader.NodeType == XmlNodeType.Element) { IdentifiedItem item = new IdentifiedItem(); while (reader.NodeType != XmlNodeType.EndElement) { reader.Read(); if (reader.Name.Equals("Name")) { item.name = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("Description")) { item.description = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("Value")) { item.value = reader.ReadElementContentAsInt(); } else if (reader.Name.Equals("Effect")) { item.interactionFile = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("SpawnWeight")) { item.weighting = reader.ReadElementContentAsInt(); } else if (reader.Name.Equals("Materials")) { string materials = reader.ReadElementContentAsString(); item.materials = materials.Split(','); } else if (reader.Name.Equals("Size")) { item.size = reader.ReadElementContentAsFloat(); } } item.category = category; identifiedItems.Add(item); } else if (reader.Name.Equals("ActionWord")) { actionWord = reader.ReadElementContentAsString(); } } reader.Close(); for (int i = 0; i < identifiedItems.Count; i++) { drinks.Add(new BaseItemType(identifiedItems[i].category, identifiedItems[i].description, identifiedItems[i].description, identifiedItems[i].name, identifiedItems[i].name, "None", identifiedItems[i].size, MaterialHandler.GetMaterial(identifiedItems[i].materials[RNG.Roll(0, identifiedItems[i].materials.Length - 1)]), "Drinks", governingSkill, actionWord, identifiedItems[i].interactionFile, identifiedItems[i].value, identifiedItems[i].weighting)); } return(drinks); }
public static List <BaseItemType> LoadPotions() { List <BaseItemType> potions = new List <BaseItemType>(); string filePath = Directory.GetCurrentDirectory() + "//Data//Items//Potions//Potions.xml"; XmlReader reader = XmlReader.Create(filePath); List <IdentifiedItem> identifiedItems = new List <IdentifiedItem>(); List <UnidentifiedItem> unidentifiedItems = new List <UnidentifiedItem>(); string actionWord = "strikes"; string governingSkill = "None"; string category = "None"; while (reader.Read()) { if (reader.Depth == 0 && reader.NodeType == XmlNodeType.Element && !reader.Name.Equals("Items")) { break; } if (reader.Name.Equals("Category") && reader.NodeType == XmlNodeType.Element) { category = reader.ReadElementContentAsString(); } if (reader.Name.Equals("IdentifiedItem") && reader.NodeType == XmlNodeType.Element) { IdentifiedItem item = new IdentifiedItem(); while (reader.NodeType != XmlNodeType.EndElement) { reader.Read(); if (reader.Name.Equals("Name")) { item.name = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("Description")) { item.description = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("Value")) { item.value = reader.ReadElementContentAsInt(); } else if (reader.Name.Equals("Effect")) { item.interactionFile = Directory.GetCurrentDirectory() + "//Data//Scripts//Items//Potions//" + reader.ReadElementContentAsString(); } else if (reader.Name.Equals("SpawnWeight")) { item.weighting = reader.ReadElementContentAsInt(); } } item.category = category; identifiedItems.Add(item); } else if (reader.Name.Equals("UnidentifiedItem") && reader.NodeType == XmlNodeType.Element) { UnidentifiedItem item = new UnidentifiedItem(); while (reader.NodeType != XmlNodeType.EndElement) { reader.Read(); if (reader.Name.Equals("Name")) { item.name = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("Description")) { item.description = reader.ReadElementContentAsString(); } } unidentifiedItems.Add(item); } else if (reader.Name.Equals("ActionWord")) { actionWord = reader.ReadElementContentAsString(); } } reader.Close(); ItemMaterial glass = MaterialHandler.GetMaterial("Glass"); for (int i = 0; i < identifiedItems.Count; i++) { int index = RNG.Roll(0, unidentifiedItems.Count - 1); UnidentifiedItem chosenDescription = unidentifiedItems[index]; unidentifiedItems.RemoveAt(index); potions.Add(new BaseItemType(identifiedItems[i].category, identifiedItems[i].description, chosenDescription.description, chosenDescription.name, identifiedItems[i].name, "None", 5.0f, glass, "Potions", governingSkill, actionWord, identifiedItems[i].interactionFile, identifiedItems[i].value, identifiedItems[i].weighting)); } return(potions); }
public static List <BaseItemType> LoadItems() { List <BaseItemType> weapons = new List <BaseItemType>(); string folderPath = Directory.GetCurrentDirectory() + GlobalConstants.DATA_FOLDER + "Items"; string[] files = Directory.GetFiles(folderPath, "*.xml", SearchOption.AllDirectories); for (int i = 0; i < files.Length; i++) { XmlReader reader = XmlReader.Create(files[i]); List <IdentifiedItem> identifiedItems = new List <IdentifiedItem>(); List <UnidentifiedItem> unidentifiedItems = new List <UnidentifiedItem>(); string actionWord = "strikes"; string category = "Misc"; int lightLevel = 0; while (reader.Read()) { if (reader.Depth == 0 && reader.NodeType == XmlNodeType.Element && !reader.Name.Equals("Items")) { break; } if (reader.Name.Equals("Category") && reader.NodeType == XmlNodeType.Element) { category = reader.ReadElementContentAsString(); } if (reader.Name.Equals("IdentifiedItem") && reader.NodeType == XmlNodeType.Element) { IdentifiedItem item = new IdentifiedItem(); item.slot = "None"; item.skill = "None"; while (reader.NodeType != XmlNodeType.EndElement) { reader.Read(); if (reader.Name.Equals("Name")) { item.name = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("Description")) { item.description = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("Value")) { item.value = reader.ReadElementContentAsInt(); } else if (reader.Name.Equals("Effect")) { item.interactionFile = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("SpawnWeight")) { item.weighting = reader.ReadElementContentAsInt(); } else if (reader.Name.Equals("Materials")) { string materials = reader.ReadElementContentAsString(); item.materials = materials.Split(','); } else if (reader.Name.Equals("Size")) { item.size = reader.ReadElementContentAsFloat(); } else if (reader.Name.Equals("Slot")) { item.slot = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("Skill")) { item.skill = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("LightLevel")) { lightLevel = reader.ReadElementContentAsInt(); } } item.category = category; identifiedItems.Add(item); } else if (reader.Name.Equals("UnidentifiedItem")) { UnidentifiedItem item = new UnidentifiedItem(); while (reader.NodeType != XmlNodeType.EndElement) { reader.Read(); if (reader.Name.Equals("Name")) { item.name = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("Description")) { item.description = reader.ReadElementContentAsString(); } } unidentifiedItems.Add(item); } else if (reader.Name.Equals("ActionWord")) { actionWord = reader.ReadElementContentAsString(); } } reader.Close(); for (int j = 0; j < identifiedItems.Count; j++) { UnidentifiedItem chosenDescription = new UnidentifiedItem(identifiedItems[j].name, identifiedItems[j].description); if (unidentifiedItems.Count != 0) { int index = RNG.Roll(0, unidentifiedItems.Count - 1); chosenDescription = unidentifiedItems[index]; unidentifiedItems.RemoveAt(index); } for (int k = 0; k < identifiedItems[j].materials.Length; k++) { weapons.Add(new BaseItemType(identifiedItems[j].category, identifiedItems[j].description, chosenDescription.description, chosenDescription.name, identifiedItems[j].name, identifiedItems[j].slot, identifiedItems[j].size, MaterialHandler.GetMaterial(identifiedItems[j].materials[k]), identifiedItems[j].category, identifiedItems[j].skill, actionWord, identifiedItems[j].interactionFile, identifiedItems[j].value, identifiedItems[j].weighting, lightLevel)); } } } return(weapons); }