예제 #1
0
파일: DruidMain.cs 프로젝트: Nifusion/DSA
        private void FavoriteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Spells spells     = Spells.Retrieve(Properties.Settings.Default.SpellsXML);
            Spell  thisSpell  = (Spell)((TreeView)((ContextMenuStrip)((ToolStripMenuItem)sender).GetCurrentParent()).SourceControl).SelectedNode.Tag; //((TreeView)((ContextMenuStrip)((ToolStripMenuItem)sender).GetCurrentParent().tvSpells).SelectedNode.Tag;
            int    indexMatch = spells.FindIndex(x => x.Name.ToUpper() == thisSpell.Name.ToUpper() && x.Level.ToUpper() == thisSpell.Level.ToUpper());

            if (indexMatch > -1)
            {
                if (spells[indexMatch].Favorited)
                {
                    spells[indexMatch].Favorited = false;
                }
                else if (!spells[indexMatch].Favorited)
                {
                    spells[indexMatch].Favorited = true;
                }
                else
                {
                    spells[indexMatch].Favorited = true;
                }

                spells.Save(Properties.Settings.Default.SpellsXML);
            }

            RefreshSpellPage(GetSpellNodesExpansion());
        }
예제 #2
0
파일: DruidMain.cs 프로젝트: Nifusion/DSA
        private void TvSpells_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Delete)
            {
                if (!File.Exists(Properties.Settings.Default.SpellsXML))
                {
                    MessageBox.Show("XML file was not found.", "File Not Found", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                if (tvSpells.SelectedNode != null)
                {
                    if (tvSpells.SelectedNode.Tag is Spell selSpell)
                    {
                        if (MessageBox.Show(string.Format("Are you sure you want to delete {0} from this list?", ((Spell)tvSpells.SelectedNode.Tag).Name), "Delete Summon Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Stop) == DialogResult.Yes)
                        {
                            Spells spells     = Spells.Retrieve(Properties.Settings.Default.SpellsXML);
                            int    indexMatch = spells.FindIndex(x => x.Name.ToUpper() == selSpell.Name.ToUpper() && x.Level.ToUpper() == selSpell.Level.ToUpper());

                            if (indexMatch > -1)
                            {
                                spells.RemoveAt(indexMatch);
                            }

                            spells.Save(Properties.Settings.Default.SpellsXML);
                            RefreshSpellPage(GetSpellNodesExpansion());
                        }
                    }
                }
            }
        }
예제 #3
0
파일: DruidMain.cs 프로젝트: Nifusion/DSA
        private void ChangeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            TextBox tbSender = (TextBox)((ContextMenuStrip)((ToolStripMenuItem)sender).GetCurrentParent()).SourceControl;

            if (tbSender == tbSummonsXML)
            {
                using (OpenFileDialog ofd = new OpenFileDialog())
                {
                    ofd.Multiselect     = false;
                    ofd.Filter          = "XML Files (*.xml)| *.xml";
                    ofd.CheckFileExists = true;
                    if (ofd.ShowDialog() == DialogResult.OK)
                    {
                        try
                        {
                            Summons s = Summons.Retrieve(ofd.FileName);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(string.Format("File not valid\rError: {0}", ex.Message), "File Select Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }

                        tbSummonsXML.Text = ofd.FileName;
                    }
                }
            }
            if (tbSender == tbSpellsXML)
            {
                using (OpenFileDialog ofd = new OpenFileDialog())
                {
                    ofd.Multiselect     = false;
                    ofd.Filter          = "XML Files (*.xml)| *.xml";
                    ofd.CheckFileExists = true;
                    if (ofd.ShowDialog() == DialogResult.OK)
                    {
                        try
                        {
                            Spells s = Spells.Retrieve(ofd.FileName);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(string.Format("File not valid\rError: {0}", ex.Message), "File Select Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }

                        tbSpellsXML.Text = ofd.FileName;
                    }
                }
            }
        }
예제 #4
0
파일: DruidMain.cs 프로젝트: Nifusion/DSA
        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();
                }
            }
        }
예제 #5
0
파일: DruidMain.cs 프로젝트: Nifusion/DSA
        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());
            }
        }
예제 #6
0
파일: DruidMain.cs 프로젝트: Nifusion/DSA
        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());
        }