Пример #1
0
        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");
        }
Пример #2
0
        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();
        }
Пример #3
0
        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();
        }