Пример #1
0
        private void SaveSpellToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!File.Exists(Properties.Settings.Default.SpellsXML))
            {
                MessageBox.Show("XML file was not found.", "File Not Found", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (sittingSpellID == 0)
            {
                MessageBox.Show("Spell does not exist.", "Spell Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else
            {
                if (tbSpellName.Text == "")
                {
                    MessageBox.Show("Spell Name must be filled out", "Spell Update Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                if (!Regex.IsMatch(tbSpellLevel.Text, "[0-9]{1}"))
                {
                    MessageBox.Show("Spell Level must be a number 0 - 9", "Spell Update Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                Spell updateSpell = new Spell
                {
                    Index           = sittingSpellID,
                    Favorited       = chkFavoriteSpell.Checked,
                    Name            = tbSpellName.Text,
                    Class           = tbSpellClass.Text,
                    Level           = tbSpellLevel.Text,
                    Domain          = tbSpellDomain.Text,
                    Components      = tbSpellComponents.Text,
                    Casting         = tbSpellCastingTime.Text,
                    Range           = tbSpellRange.Text,
                    Target          = tbSpellTarget.Text,
                    Effect          = tbSpellEffect.Text,
                    Duration        = tbSpellDuration.Text,
                    SavingThrow     = tbSpellSaving.Text,
                    SpellResistance = tbSpellResistance.Text,
                    SourceBook      = tbSource.Text,
                    Description     = rtbSpellDescription.Text,
                    PersonalNotes   = rtbPersonalNotes.Text
                };

                Spells spells     = Spells.Retrieve(Properties.Settings.Default.SpellsXML);
                int    indexMatch = spells.FindIndex(x => x.Index == sittingSpellID);

                if (indexMatch > -1)
                {
                    spells[indexMatch] = updateSpell;
                }
                else
                {
                    MessageBox.Show("Spell cannot be found.", "Spell Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                spells.Save(Properties.Settings.Default.SpellsXML);
                RefreshSpellPage(GetSpellNodesExpansion());
            }
        }
Пример #2
0
        private void RefreshSpellPage(bool[] expanders)
        {
            if (!File.Exists(Properties.Settings.Default.SpellsXML))
            {
                MessageBox.Show("XML file was not found.", "File Not Found", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            tvSpells.Nodes.Clear();
            tvFavoritedSpells.Nodes.Clear();

            TreeNode tn0 = tvSpells.Nodes.Add("Level 0");
            TreeNode tn1 = tvSpells.Nodes.Add("Level 1");
            TreeNode tn2 = tvSpells.Nodes.Add("Level 2");
            TreeNode tn3 = tvSpells.Nodes.Add("Level 3");
            TreeNode tn4 = tvSpells.Nodes.Add("Level 4");
            TreeNode tn5 = tvSpells.Nodes.Add("Level 5");
            TreeNode tn6 = tvSpells.Nodes.Add("Level 6");
            TreeNode tn7 = tvSpells.Nodes.Add("Level 7");
            TreeNode tn8 = tvSpells.Nodes.Add("Level 8");
            TreeNode tn9 = tvSpells.Nodes.Add("Level 9");

            TreeNode tnf0 = tvFavoritedSpells.Nodes.Add("Level 0");
            TreeNode tnf1 = tvFavoritedSpells.Nodes.Add("Level 1");
            TreeNode tnf2 = tvFavoritedSpells.Nodes.Add("Level 2");
            TreeNode tnf3 = tvFavoritedSpells.Nodes.Add("Level 3");
            TreeNode tnf4 = tvFavoritedSpells.Nodes.Add("Level 4");
            TreeNode tnf5 = tvFavoritedSpells.Nodes.Add("Level 5");
            TreeNode tnf6 = tvFavoritedSpells.Nodes.Add("Level 6");
            TreeNode tnf7 = tvFavoritedSpells.Nodes.Add("Level 7");
            TreeNode tnf8 = tvFavoritedSpells.Nodes.Add("Level 8");
            TreeNode tnf9 = tvFavoritedSpells.Nodes.Add("Level 9");

            Spells spells = Spells.Retrieve(Properties.Settings.Default.SpellsXML);

            for (int i = 0; i < spells.Count; i++)
            {
                TreeNode thisSpell = new TreeNode(string.Format("{0} ({1})", spells[i].Name, spells[i].SourceBook));
                thisSpell.Tag = spells[i];

                TreeNode thisfSpell = new TreeNode(string.Format("{0} ({1})", spells[i].Name, spells[i].SourceBook));
                thisfSpell.Tag = spells[i];

                if (spells[i].Level == "0")
                {
                    tn0.Nodes.Add(thisSpell);
                }
                if (spells[i].Level == "1")
                {
                    tn1.Nodes.Add(thisSpell);
                }
                if (spells[i].Level == "2")
                {
                    tn2.Nodes.Add(thisSpell);
                }
                if (spells[i].Level == "3")
                {
                    tn3.Nodes.Add(thisSpell);
                }
                if (spells[i].Level == "4")
                {
                    tn4.Nodes.Add(thisSpell);
                }
                if (spells[i].Level == "5")
                {
                    tn5.Nodes.Add(thisSpell);
                }
                if (spells[i].Level == "6")
                {
                    tn6.Nodes.Add(thisSpell);
                }
                if (spells[i].Level == "7")
                {
                    tn7.Nodes.Add(thisSpell);
                }
                if (spells[i].Level == "8")
                {
                    tn8.Nodes.Add(thisSpell);
                }
                if (spells[i].Level == "9")
                {
                    tn9.Nodes.Add(thisSpell);
                }

                if (spells[i].Level == "0" && spells[i].Favorited)
                {
                    tnf0.Nodes.Add(thisfSpell);
                }
                if (spells[i].Level == "1" && spells[i].Favorited)
                {
                    tnf1.Nodes.Add(thisfSpell);
                }
                if (spells[i].Level == "2" && spells[i].Favorited)
                {
                    tnf2.Nodes.Add(thisfSpell);
                }
                if (spells[i].Level == "3" && spells[i].Favorited)
                {
                    tnf3.Nodes.Add(thisfSpell);
                }
                if (spells[i].Level == "4" && spells[i].Favorited)
                {
                    tnf4.Nodes.Add(thisfSpell);
                }
                if (spells[i].Level == "5" && spells[i].Favorited)
                {
                    tnf5.Nodes.Add(thisfSpell);
                }
                if (spells[i].Level == "6" && spells[i].Favorited)
                {
                    tnf6.Nodes.Add(thisfSpell);
                }
                if (spells[i].Level == "7" && spells[i].Favorited)
                {
                    tnf7.Nodes.Add(thisfSpell);
                }
                if (spells[i].Level == "8" && spells[i].Favorited)
                {
                    tnf8.Nodes.Add(thisfSpell);
                }
                if (spells[i].Level == "9" && spells[i].Favorited)
                {
                    tnf9.Nodes.Add(thisfSpell);
                }
            }
            tvSpells.Sort();
            tvFavoritedSpells.Sort();

            if (expanders.Length == 20)
            {
                if (expanders[0])
                {
                    tn0.Expand();
                }
                if (expanders[1])
                {
                    tn1.Expand();
                }
                if (expanders[2])
                {
                    tn2.Expand();
                }
                if (expanders[3])
                {
                    tn3.Expand();
                }
                if (expanders[4])
                {
                    tn4.Expand();
                }
                if (expanders[5])
                {
                    tn5.Expand();
                }
                if (expanders[6])
                {
                    tn6.Expand();
                }
                if (expanders[7])
                {
                    tn7.Expand();
                }
                if (expanders[8])
                {
                    tn8.Expand();
                }
                if (expanders[9])
                {
                    tn9.Expand();
                }

                if (expanders[10])
                {
                    tnf0.Expand();
                }
                if (expanders[11])
                {
                    tnf1.Expand();
                }
                if (expanders[12])
                {
                    tnf2.Expand();
                }
                if (expanders[13])
                {
                    tnf3.Expand();
                }
                if (expanders[14])
                {
                    tnf4.Expand();
                }
                if (expanders[15])
                {
                    tnf5.Expand();
                }
                if (expanders[16])
                {
                    tnf6.Expand();
                }
                if (expanders[17])
                {
                    tnf7.Expand();
                }
                if (expanders[18])
                {
                    tnf8.Expand();
                }
                if (expanders[19])
                {
                    tnf9.Expand();
                }
            }
        }
Пример #3
0
        private void AddSpellToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!File.Exists(Properties.Settings.Default.SpellsXML))
            {
                MessageBox.Show("XML file was not found.", "File Not Found", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (tbSpellName.Text == "")
            {
                MessageBox.Show("Spell Name must be filled out", "Spell Update Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (!Regex.IsMatch(tbSpellLevel.Text, "[0-9]{1}"))
            {
                MessageBox.Show("Spell Level must be a number 0 - 9", "Spell Update Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            Spell addSpell = new Spell
            {
                Favorited       = chkFavoriteSpell.Checked,
                Name            = tbSpellName.Text,
                Class           = tbSpellClass.Text,
                Level           = tbSpellLevel.Text,
                Domain          = tbSpellDomain.Text,
                Components      = tbSpellComponents.Text,
                Casting         = tbSpellCastingTime.Text,
                Range           = tbSpellRange.Text,
                Target          = tbSpellTarget.Text,
                Effect          = tbSpellEffect.Text,
                Duration        = tbSpellDuration.Text,
                SavingThrow     = tbSpellSaving.Text,
                SpellResistance = tbSpellResistance.Text,
                SourceBook      = tbSource.Text,
                Description     = rtbSpellDescription.Text,
                PersonalNotes   = rtbPersonalNotes.Text
            };

            Spells spells     = Spells.Retrieve(Properties.Settings.Default.SpellsXML);
            int    indexMatch = spells.FindIndex(x => x.Name.ToUpper() == addSpell.Name.ToUpper() && x.Level.ToUpper() == addSpell.Level.ToUpper());

            if (indexMatch > -1)
            {
                if (MessageBox.Show("Spell of the same name and level already exists\rWould you like to add a duplicate?", "Spell already exists", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    addSpell.Index = spells.Max(x => x.Index) + 1;
                    spells.Add(addSpell);
                    ClearSpellPage();
                }
            }
            else
            {
                addSpell.Index = spells.Max(x => x.Index) + 1;
                spells.Add(addSpell);
                ClearSpellPage();
            }
            rtbSpellText.Clear();
            spells.Save(Properties.Settings.Default.SpellsXML);
            RefreshSpellPage(GetSpellNodesExpansion());
        }