private void cmdAddVehicle_Click(object sender, EventArgs e) { frmSelectVehicle frmPickVehicle = new frmSelectVehicle(_objCharacter); frmPickVehicle.ShowDialog(this); // Make sure the dialogue window was not canceled. if (frmPickVehicle.DialogResult == DialogResult.Cancel) return; // Open the Vehicles XML file and locate the selected piece. XmlDocument objXmlDocument = XmlManager.Instance.Load("vehicles.xml"); XmlNode objXmlVehicle = objXmlDocument.SelectSingleNode("/chummer/vehicles/vehicle[name = \"" + frmPickVehicle.SelectedVehicle + "\"]"); TreeNode objNode = new TreeNode(); Vehicle objVehicle = new Vehicle(_objCharacter); objVehicle.Create(objXmlVehicle, objNode, cmsVehicle, cmsVehicleGear, cmsVehicleWeapon, cmsVehicleWeaponAccessory, cmsVehicleWeaponMod); // Update the Used Vehicle information if applicable. if (frmPickVehicle.UsedVehicle) { objVehicle.Avail = frmPickVehicle.UsedAvail; objVehicle.Cost = frmPickVehicle.UsedCost.ToString(); } _objCharacter.Vehicles.Add(objVehicle); objNode.ContextMenuStrip = cmsVehicle; treVehicles.Nodes[0].Nodes.Add(objNode); treVehicles.Nodes[0].Expand(); treVehicles.SelectedNode = objNode; UpdateCharacterInfo(); RefreshSelectedVehicle(); _blnIsDirty = true; UpdateWindowTitle(); if (frmPickVehicle.AddAgain) cmdAddVehicle_Click(sender, e); }
private void cmdAddVehicle_Click(object sender, EventArgs e) { frmSelectVehicle frmPickVehicle = new frmSelectVehicle(_objCharacter, true); frmPickVehicle.ShowDialog(this); // Make sure the dialogue window was not canceled. if (frmPickVehicle.DialogResult == DialogResult.Cancel) return; // Open the Vehicles XML file and locate the selected piece. XmlDocument objXmlDocument = XmlManager.Instance.Load("vehicles.xml"); XmlNode objXmlVehicle = objXmlDocument.SelectSingleNode("/chummer/vehicles/vehicle[name = \"" + frmPickVehicle.SelectedVehicle + "\"]"); TreeNode objNode = new TreeNode(); Vehicle objVehicle = new Vehicle(_objCharacter); objVehicle.Create(objXmlVehicle, objNode, cmsVehicle, cmsVehicleGear, cmsVehicleWeapon, cmsVehicleWeaponAccessory, cmsVehicleWeaponMod); // Update the Used Vehicle information if applicable. if (frmPickVehicle.UsedVehicle) { objVehicle.Avail = frmPickVehicle.UsedAvail; objVehicle.Cost = frmPickVehicle.UsedCost.ToString(); } int intCost = objVehicle.TotalCost; // Apply a markup if applicable. if (frmPickVehicle.Markup != 0) { double dblCost = Convert.ToDouble(intCost, GlobalOptions.Instance.CultureInfo); dblCost *= 1 + (Convert.ToDouble(frmPickVehicle.Markup, GlobalOptions.Instance.CultureInfo) / 100.0); intCost = Convert.ToInt32(dblCost); } // Multiply the cost if applicable. if (objVehicle.CalculatedAvail.EndsWith(LanguageManager.Instance.GetString("String_AvailRestricted")) && _objOptions.MultiplyRestrictedCost) intCost *= _objOptions.RestrictedCostMultiplier; if (objVehicle.CalculatedAvail.EndsWith(LanguageManager.Instance.GetString("String_AvailForbidden")) && _objOptions.MultiplyForbiddenCost) intCost *= _objOptions.ForbiddenCostMultiplier; // Check the item's Cost and make sure the character can afford it. if (!frmPickVehicle.FreeCost) { if (intCost > _objCharacter.Nuyen) { MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information); if (frmPickVehicle.AddAgain) cmdAddVehicle_Click(sender, e); return; } else { // Create the Expense Log Entry. ExpenseLogEntry objExpense = new ExpenseLogEntry(); objExpense.Create(intCost * -1, LanguageManager.Instance.GetString("String_ExpensePurchaseVehicle") + " " + objVehicle.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now); _objCharacter.ExpenseEntries.Add(objExpense); _objCharacter.Nuyen -= intCost; ExpenseUndo objUndo = new ExpenseUndo(); objUndo.CreateNuyen(NuyenExpenseType.AddVehicle, objVehicle.InternalId); objExpense.Undo = objUndo; } } _objCharacter.Vehicles.Add(objVehicle); objNode.ContextMenuStrip = cmsVehicle; treVehicles.Nodes[0].Nodes.Add(objNode); treVehicles.Nodes[0].Expand(); treVehicles.SelectedNode = objNode; UpdateCharacterInfo(); RefreshSelectedVehicle(); _blnIsDirty = true; UpdateWindowTitle(); if (frmPickVehicle.AddAgain) cmdAddVehicle_Click(sender, e); }