private void saveButton_Click(object sender, EventArgs e) { if (defenseTextBox.Text.Length < 1 || strTextBox.Text.Length < 1 || dexListBox.Text.Length < 1 || agiTextBox.Text.Length < 1 || staTextBox.Text.Length < 1 || imageFileTextBox.Text.Length < contentPath.Length + 1) { MessageBox.Show("Not All Fields Have Values"); return; } armor.name = armorNameTextBox.Text; armor.type = typeComboBox.Text; if (heavyCheckBox.Checked) armor.equipClass.Add("Heavy"); if (mediumCheckBox.Checked) armor.equipClass.Add("Medium"); if (lightCheckBox.Checked) armor.equipClass.Add("Light"); if (leatherCheckBox.Checked) armor.equipClass.Add("Leather"); if (clothCheckBox.Checked) armor.equipClass.Add("Cloth"); armor.textureName = imageFileTextBox.Text; armor.def = int.Parse(defenseTextBox.Text); armor.strbonus = int.Parse(strTextBox.Text); armor.dexbonus = int.Parse(dexListBox.Text); armor.agibonus = int.Parse(agiTextBox.Text); armor.stabonus = int.Parse(staTextBox.Text); armor.defenseType = defenseTypeComboBox.Text; armor.specialAbility = specialAbilityComboBox.Text; if (existingArmorComboBox.SelectedItem == null) { armorList.Add(armor.name, armor); existingArmorComboBox.Items.Add(armor.name); existingArmorComboBox.SelectedItem = armor.name; armor = new Armor(); } else { if (existingArmorComboBox.Text != armor.name) { armorList.Add(armor.name, armor); armorList.Remove(existingArmorComboBox.Text); existingArmorComboBox.Items.Remove(existingArmorComboBox.SelectedItem); existingArmorComboBox.Items.Add(armor.name); existingArmorComboBox.SelectedItem = armor.name; } else armorList[armor.name] = armor; armor = new Armor(); } XmlDocument doc = new XmlDocument(); XmlElement rootElement = doc.CreateElement("Armors"); doc.AppendChild(rootElement); Dictionary<int, Armor> sortList = new Dictionary<int, Armor>(); foreach (Armor weap in armorList.Values) { int wpn = 1; foreach (Armor wepn in armorList.Values) { if (weap == wepn) continue; if (weap.def >= wepn.def) wpn++; } while (sortList.ContainsKey(wpn)) wpn--; sortList.Add(wpn, weap); } for (int wep = 1; wep <= sortList.Keys.Count; wep++) { Armor wea = sortList[wep]; { XmlElement armorElement = doc.CreateElement("Armor"); rootElement.AppendChild(armorElement); XmlAttribute wAttr = doc.CreateAttribute("Name"); wAttr.Value = wea.name; XmlAttribute wAttr2 = doc.CreateAttribute("Type"); wAttr2.Value = wea.type; armorElement.Attributes.Append(wAttr); armorElement.Attributes.Append(wAttr2); XmlElement equipElement = doc.CreateElement("Equip"); armorElement.AppendChild(equipElement); XmlAttribute eAttr = doc.CreateAttribute("Class"); foreach (string eq in wea.equipClass) { eAttr.Value += eq + " "; } equipElement.Attributes.Append(eAttr); XmlElement textureElement = doc.CreateElement("Image"); armorElement.AppendChild(textureElement); XmlAttribute tAttr = doc.CreateAttribute("Texture"); tAttr.Value = wea.textureName.Replace(contentPath + "\\", ""); textureElement.Attributes.Append(tAttr); XmlElement defElement = doc.CreateElement("Def"); defElement.InnerText = wea.def.ToString(); armorElement.AppendChild(defElement); XmlElement attribbonusElement = doc.CreateElement("AttribBonus"); armorElement.AppendChild(attribbonusElement); XmlElement strElement = doc.CreateElement("Str"); strElement.InnerText = wea.strbonus.ToString(); attribbonusElement.AppendChild(strElement); XmlElement dexElement = doc.CreateElement("Dex"); dexElement.InnerText = wea.dexbonus.ToString(); attribbonusElement.AppendChild(dexElement); XmlElement agiElement = doc.CreateElement("Agi"); agiElement.InnerText = wea.agibonus.ToString(); attribbonusElement.AppendChild(agiElement); XmlElement staElement = doc.CreateElement("Sta"); staElement.InnerText = wea.stabonus.ToString(); attribbonusElement.AppendChild(staElement); XmlElement dType = doc.CreateElement("DefenseType"); dType.InnerText = wea.defenseType; armorElement.AppendChild(dType); XmlElement special = doc.CreateElement("Special"); special.InnerText = wea.specialAbility; armorElement.AppendChild(special); } } doc.Save(contentPath + "\\" + "Armors.item"); }
private void loadData() { XmlTextReader reader = new XmlTextReader(contentPath + "\\Armors.item"); reader.WhitespaceHandling = WhitespaceHandling.None; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == "Armor") { armor.name = reader["Name"]; armor.type = reader["Type"]; } if (reader.Name == "Equip") { reader.MoveToFirstAttribute(); string[] eachClass = reader.Value.Split(' '); foreach(string s in eachClass) if (!s.Contains(" ")) armor.equipClass.Add(s); } if (reader.Name == "Image") armor.textureName = contentPath + "\\" + reader["Texture"]; if (reader.Name == "Def") armor.def = int.Parse(reader.ReadInnerXml()); if (reader.Name == "Str") armor.strbonus = int.Parse(reader.ReadInnerXml()); if (reader.Name == "Dex") armor.dexbonus = int.Parse(reader.ReadInnerXml()); if (reader.Name == "Agi") armor.agibonus = int.Parse(reader.ReadInnerXml()); if (reader.Name == "Sta") armor.stabonus = int.Parse(reader.ReadInnerXml()); if (reader.Name == "DefenseType") armor.defenseType = reader.ReadInnerXml(); } else if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "Armor") { armorList.Add(armor.name, armor); existingArmorComboBox.Items.Add(armor.name); armor = new Armor(); } } reader.Close(); }
private void loadCheckBoxes() { int topPosition = 0; Skills sk = new Skills(); Spells sp = new Spells(); Weapon wea = new Weapon(); Armor arm = new Armor(); XmlTextReader reader = new XmlTextReader(contentPath + "\\skills.item"); reader.WhitespaceHandling = WhitespaceHandling.None; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == "Skill") { sk.name = reader["name"]; skills.Add(sk); sk = new Skills(); } } } reader.Close(); reader = new XmlTextReader(contentPath + "\\Spells.item"); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == "Spell") { sp.name = reader["name"]; spells.Add(sp); sp = new Spells(); } } } reader.Close(); this.SuspendLayout(); foreach (Skills skill in skills) { CheckBox checkbox = new CheckBox(); checkbox.Top = topPosition; checkbox.Left = 0; checkbox.Text = skill.name; checkbox.Name = skill.name; topPosition += 23; skillPanel.Controls.Add(checkbox); } topPosition = 0; foreach (Spells spell in spells) { CheckBox checkbox = new CheckBox(); checkbox.Top = topPosition; checkbox.Left = 0; checkbox.Text = spell.name; checkbox.Name = spell.name; topPosition += 23; spellPanel.Controls.Add(checkbox); } this.ResumeLayout(); }