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); } }
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); } }
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); } }