Ejemplo n.º 1
0
        private void tsMartialArtsAddAdvantage_Click(object sender, EventArgs e)
        {
            try
            {
                // Select the Martial Arts node if we're currently on a child.
                if (treMartialArts.SelectedNode.Level > 1)
                    treMartialArts.SelectedNode = treMartialArts.SelectedNode.Parent;

                MartialArt objMartialArt = _objFunctions.FindMartialArt(treMartialArts.SelectedNode.Tag.ToString(), _objCharacter.MartialArts);

                frmSelectMartialArtAdvantage frmPickMartialArtAdvantage = new frmSelectMartialArtAdvantage(_objCharacter);
                frmPickMartialArtAdvantage.MartialArt = objMartialArt.Name;
                frmPickMartialArtAdvantage.ShowDialog(this);

                if (frmPickMartialArtAdvantage.DialogResult == DialogResult.Cancel)
                    return;

                // Open the Martial Arts XML file and locate the selected piece.
                XmlDocument objXmlDocument = XmlManager.Instance.Load("martialarts.xml");

                XmlNode objXmlAdvantage = objXmlDocument.SelectSingleNode("/chummer/martialarts/martialart[name = \"" + objMartialArt.Name + "\"]/techniques/technique[name = \"" + frmPickMartialArtAdvantage.SelectedAdvantage + "\"]");

                // Create the Improvements for the Advantage if there are any.
                TreeNode objNode = new TreeNode();
                MartialArtAdvantage objAdvantage = new MartialArtAdvantage(_objCharacter);
                objAdvantage.Create(objXmlAdvantage, _objCharacter, objNode);
                if (objAdvantage.InternalId == Guid.Empty.ToString())
                    return;

                objMartialArt.Advantages.Add(objAdvantage);

                objNode.ContextMenuStrip = cmsTechnique;
                treMartialArts.SelectedNode.Nodes.Add(objNode);
                treMartialArts.SelectedNode.Expand();

                // Create the Expense Log Entry.
                if (treMartialArts.SelectedNode.Nodes.Count > 1)
                {
                    ExpenseLogEntry objEntry = new ExpenseLogEntry();
                    objEntry.Create(_objOptions.KarmaManeuver * -1, LanguageManager.Instance.GetString("String_ExpenseLearnTechnique") + " " + frmPickMartialArtAdvantage.SelectedAdvantage, ExpenseType.Karma, DateTime.Now);
                    _objCharacter.ExpenseEntries.Add(objEntry);
                    _objCharacter.Karma -= _objOptions.KarmaManeuver;

                    ExpenseUndo objUndo = new ExpenseUndo();
                    objUndo.CreateKarma(KarmaExpenseType.AddMartialArtManeuver, frmPickMartialArtAdvantage.SelectedAdvantage);
                    objEntry.Undo = objUndo;
                }

                UpdateCharacterInfo();

                _blnIsDirty = true;
                UpdateWindowTitle();
            }
            catch
            {
                MessageBox.Show(LanguageManager.Instance.GetString("Message_SelectMartialArtAdvantage"), LanguageManager.Instance.GetString("MessageTitle_SelectMartialArtAdvantage"), MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Ejemplo n.º 2
0
        private void tsMartialArtsAddAdvantage_Click(object sender, EventArgs e)
        {
            try
            {
                // Select the Martial Arts node if we're currently on a child.
                if (treMartialArts.SelectedNode.Level > 1)
                    treMartialArts.SelectedNode = treMartialArts.SelectedNode.Parent;

                MartialArt objMartialArt = _objFunctions.FindMartialArt(treMartialArts.SelectedNode.Tag.ToString(), _objCharacter.MartialArts);

                frmSelectMartialArtAdvantage frmPickMartialArtAdvantage = new frmSelectMartialArtAdvantage(_objCharacter);
                frmPickMartialArtAdvantage.MartialArt = objMartialArt.Name;
                frmPickMartialArtAdvantage.ShowDialog(this);

                if (frmPickMartialArtAdvantage.DialogResult == DialogResult.Cancel)
                    return;

                // Open the Martial Arts XML file and locate the selected piece.
                XmlDocument objXmlDocument = XmlManager.Instance.Load("martialarts.xml");

                XmlNode objXmlAdvantage = objXmlDocument.SelectSingleNode("/chummer/martialarts/martialart[name = \"" + objMartialArt.Name + "\"]/techniques/technique[name = \"" + frmPickMartialArtAdvantage.SelectedAdvantage + "\"]");

                // Create the Improvements for the Advantage if there are any.
                TreeNode objNode = new TreeNode();
                MartialArtAdvantage objAdvantage = new MartialArtAdvantage(_objCharacter);
                objAdvantage.Create(objXmlAdvantage, _objCharacter, objNode);
                if (objAdvantage.InternalId == Guid.Empty.ToString())
                    return;

                objMartialArt.Advantages.Add(objAdvantage);

                objNode.ContextMenuStrip = cmsTechnique;
                treMartialArts.SelectedNode.Nodes.Add(objNode);
                treMartialArts.SelectedNode.Expand();

                CalculateBP();
                UpdateCharacterInfo();
            }
            catch
            {
                MessageBox.Show(LanguageManager.Instance.GetString("Message_SelectMartialArtAdvantage"), LanguageManager.Instance.GetString("MessageTitle_SelectMartialArtAdvantage"), MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Ejemplo n.º 3
0
        private void tsMartialArtsAddAdvantage_Click(object sender, EventArgs e)
        {
            try
            {
                // Select the Martial Arts node if we're currently on a child.
                if (treMartialArts.SelectedNode.Level > 1)
                    treMartialArts.SelectedNode = treMartialArts.SelectedNode.Parent;

                MartialArt objMartialArt = _objFunctions.FindMartialArt(treMartialArts.SelectedNode.Tag.ToString(), _objCharacter.MartialArts);

                // Make sure the user is not trying to add more Advantages than they are allowed (1 per Rating for the selected Martial Art).
                if (objMartialArt.Advantages.Count >= objMartialArt.Rating && !_objCharacter.IgnoreRules)
                {
                    MessageBox.Show(LanguageManager.Instance.GetString("Message_MartialArtAdvantageLimit").Replace("{0}", objMartialArt.DisplayNameShort), LanguageManager.Instance.GetString("MessageTitle_MartialArtAdvantageLimit"), MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                frmSelectMartialArtAdvantage frmPickMartialArtAdvantage = new frmSelectMartialArtAdvantage(_objCharacter);
                frmPickMartialArtAdvantage.MartialArt = objMartialArt.Name;
                frmPickMartialArtAdvantage.ShowDialog(this);

                if (frmPickMartialArtAdvantage.DialogResult == DialogResult.Cancel)
                    return;

                // Open the Martial Arts XML file and locate the selected piece.
                XmlDocument objXmlDocument = XmlManager.Instance.Load("martialarts.xml");

                XmlNode objXmlAdvantage = objXmlDocument.SelectSingleNode("/chummer/martialarts/martialart[name = \"" + objMartialArt.Name + "\"]/advantages/advantage[name = \"" + frmPickMartialArtAdvantage.SelectedAdvantage + "\"]");

                // Create the Improvements for the Advantage if there are any.
                TreeNode objNode = new TreeNode();
                MartialArtAdvantage objAdvantage = new MartialArtAdvantage(_objCharacter);
                objAdvantage.Create(objXmlAdvantage, _objCharacter, objNode);
                if (objAdvantage.InternalId == Guid.Empty.ToString())
                    return;

                objMartialArt.Advantages.Add(objAdvantage);

                treMartialArts.SelectedNode.Nodes.Add(objNode);
                treMartialArts.SelectedNode.Expand();

                UpdateCharacterInfo();

                _blnIsDirty = true;
                UpdateWindowTitle();
            }
            catch
            {
                MessageBox.Show(LanguageManager.Instance.GetString("Message_SelectMartialArtAdvantage"), LanguageManager.Instance.GetString("MessageTitle_SelectMartialArtAdvantage"), MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }