public Item(String aName, Attack aAttack = null, Defend aDefend = null, Use aUse = null, String aEquipTo = null) { this.name = aName; this.attack = aAttack; this.defend = aDefend; this.use = aUse; this.Tags = new Tags(); EquipTo = aEquipTo; }
bool ParseXMLItemFile(String aFile, out Item aItem) { bool lResult = true; XmlDocument doc = new XmlDocument(); doc.Load(aFile); String lName = null; String lEquipTo = null; Attack lAttack = null; Defend lDefend = null; foreach (XmlNode lNode in doc.DocumentElement.ChildNodes) { switch (lNode.Name) { case "Name": lName = lNode.InnerText; break; case "EquipTo": lEquipTo = lNode.InnerText; break; case "Attack": int lMax = 0; int lMin = 0; foreach (XmlNode l1Node in lNode.ChildNodes) { switch (l1Node.Name) { case "minDamage": lMin = Convert.ToInt32(l1Node.InnerText); break; case "maxDamage": lMax = Convert.ToInt32(l1Node.InnerText); break; } } lAttack = new Attack(lMin, lMax); break; case "Defend": int lCon = 0; int lRef = 0; int lWis = 0; foreach (XmlNode l1Node in lNode.ChildNodes) { switch (l1Node.Name) { case "Con": lCon = Convert.ToInt32(l1Node.InnerText); break; case "Ref": lRef = Convert.ToInt32(l1Node.InnerText); break; case "Wis": lWis = Convert.ToInt32(l1Node.InnerText); break; } } lDefend = new Defend(lCon, lRef, lWis); break; case "Use": break; default: lResult = false; break; } } if (lName != null && lEquipTo != null) { aItem = new Item(lName, lAttack, lDefend, aEquipTo: lEquipTo); } else { aItem = null; } return(lResult); }