本文整理汇总了C#中Chummer.ExpenseUndo.CreateNuyen方法的典型用法代码示例。如果您正苦于以下问题:C# ExpenseUndo.CreateNuyen方法的具体用法?C# ExpenseUndo.CreateNuyen怎么用?C# ExpenseUndo.CreateNuyen使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Chummer.ExpenseUndo
的用法示例。
在下文中一共展示了ExpenseUndo.CreateNuyen方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SaveCharacterAsCreated
/// <summary>
/// Save the character as Created and re-open it in Career Mode.
/// </summary>
private void SaveCharacterAsCreated()
{
// If the character was built with Karma, record their staring Karma amount (if any).
if (_objCharacter.BuildMethod == CharacterBuildMethod.Karma)
{
if (_objCharacter.Karma > 0)
{
ExpenseLogEntry objKarma = new ExpenseLogEntry();
objKarma.Create(_objCharacter.Karma, "Starting Karma", ExpenseType.Karma, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objKarma);
// Create an Undo entry so that the starting Karma amount can be modified if needed.
ExpenseUndo objKarmaUndo = new ExpenseUndo();
objKarmaUndo.CreateKarma(KarmaExpenseType.ManualAdd, "");
objKarma.Undo = objKarmaUndo;
}
}
// Create an Expense Entry for Starting Nuyen.
ExpenseLogEntry objNuyen = new ExpenseLogEntry();
objNuyen.Create(_objCharacter.Nuyen, "Starting Nuyen", ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objNuyen);
// Create an Undo entry so that the Starting Nuyen amount can be modified if needed.
ExpenseUndo objNuyenUndo = new ExpenseUndo();
objNuyenUndo.CreateNuyen(NuyenExpenseType.ManualAdd, "");
objNuyen.Undo = objNuyenUndo;
_blnSkipToolStripRevert = true;
_objCharacter.Save();
GlobalOptions.Instance.MainForm.LoadCharacter(_objCharacter.FileName, false);
this.Close();
}
示例2: PickCyberware
//.........这里部分代码省略.........
if (objCyberware.InternalId == Guid.Empty.ToString())
return false;
// Force the item to be Transgenic if selected.
if (frmPickCyberware.ForceTransgenic)
objCyberware.Category = "Genetech: Transgenics";
int intCost = objCyberware.TotalCost;
// Check the item's Cost and make sure the character can afford it.
if (!frmPickCyberware.FreeCost)
{
if (intCost > _objCharacter.Nuyen)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
// Remove any Improvements created by the Cyberware.
_objImprovementManager.RemoveImprovements(objCyberware.SourceType, objCyberware.InternalId);
return frmPickCyberware.AddAgain;
}
else
{
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
string strEntry = "";
if (objCyberware.SourceType == Improvement.ImprovementSource.Cyberware)
strEntry = LanguageManager.Instance.GetString("String_ExpensePurchaseCyberware");
else
strEntry = LanguageManager.Instance.GetString("String_ExpensePurchaseBioware");
objExpense.Create(intCost * -1, strEntry + " " + objCyberware.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Nuyen -= intCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.AddCyberware, objCyberware.InternalId);
objExpense.Undo = objUndo;
}
}
try
{
if (treCyberware.SelectedNode.Level > 0)
{
treCyberware.SelectedNode.Nodes.Add(objNode);
treCyberware.SelectedNode.Expand();
objSelectedCyberware.Cyberwares.Add(objCyberware);
objCyberware.Parent = objSelectedCyberware;
}
else
{
treCyberware.Nodes[intNode].Nodes.Add(objNode);
treCyberware.Nodes[intNode].Expand();
_objCharacter.Cyberware.Add(objCyberware);
}
}
catch
{
treCyberware.Nodes[intNode].Nodes.Add(objNode);
treCyberware.Nodes[intNode].Expand();
_objCharacter.Cyberware.Add(objCyberware);
}
// Select the node that was just added.
if (objSource == Improvement.ImprovementSource.Cyberware)
objNode.ContextMenuStrip = cmsCyberware;
else if (objSource == Improvement.ImprovementSource.Bioware)
objNode.ContextMenuStrip = cmsBioware;
示例3: cmdAddWeapon_Click
private void cmdAddWeapon_Click(object sender, EventArgs e)
{
frmSelectWeapon frmPickWeapon = new frmSelectWeapon(_objCharacter, true);
frmPickWeapon.ShowDialog(this);
// Make sure the dialogue window was not canceled.
if (frmPickWeapon.DialogResult == DialogResult.Cancel)
return;
// Open the Weapons XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("weapons.xml");
XmlNode objXmlWeapon = objXmlDocument.SelectSingleNode("/chummer/weapons/weapon[name = \"" + frmPickWeapon.SelectedWeapon + "\"]");
TreeNode objNode = new TreeNode();
Weapon objWeapon = new Weapon(_objCharacter);
objWeapon.Create(objXmlWeapon, _objCharacter, objNode, cmsWeapon, cmsWeaponAccessory, cmsWeaponMod);
int intCost = objWeapon.TotalCost;
// Apply a markup if applicable.
if (frmPickWeapon.Markup != 0)
{
double dblCost = Convert.ToDouble(intCost, GlobalOptions.Instance.CultureInfo);
dblCost *= 1 + (Convert.ToDouble(frmPickWeapon.Markup, GlobalOptions.Instance.CultureInfo) / 100.0);
intCost = Convert.ToInt32(dblCost);
}
// Multiply the cost if applicable.
if (objWeapon.TotalAvail.EndsWith(LanguageManager.Instance.GetString("String_AvailRestricted")) && _objOptions.MultiplyRestrictedCost)
intCost *= _objOptions.RestrictedCostMultiplier;
if (objWeapon.TotalAvail.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 (!frmPickWeapon.FreeCost)
{
if (intCost > _objCharacter.Nuyen)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
if (frmPickWeapon.AddAgain)
cmdAddWeapon_Click(sender, e);
return;
}
else
{
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
objExpense.Create(intCost * -1, LanguageManager.Instance.GetString("String_ExpensePurchaseWeapon") + " " + objWeapon.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Nuyen -= intCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.AddWeapon, objWeapon.InternalId);
objExpense.Undo = objUndo;
}
}
_objCharacter.Weapons.Add(objWeapon);
objNode.ContextMenuStrip = cmsWeapon;
treWeapons.Nodes[0].Nodes.Add(objNode);
treWeapons.Nodes[0].Expand();
treWeapons.SelectedNode = objNode;
UpdateCharacterInfo();
_blnIsDirty = true;
UpdateWindowTitle();
if (frmPickWeapon.AddAgain)
cmdAddWeapon_Click(sender, e);
}
示例4: cmdNuyenGained_Click
private void cmdNuyenGained_Click(object sender, EventArgs e)
{
frmExpense frmNewExpense = new frmExpense();
frmNewExpense.Mode = ExpenseType.Nuyen;
frmNewExpense.ShowDialog(this);
if (frmNewExpense.DialogResult == DialogResult.Cancel)
return;
// Create the Expense Log Entry.
ExpenseLogEntry objEntry = new ExpenseLogEntry();
objEntry.Create(frmNewExpense.Amount, frmNewExpense.strReason, ExpenseType.Nuyen, frmNewExpense.SelectedDate);
objEntry.Refund = frmNewExpense.Refund;
_objCharacter.ExpenseEntries.Add(objEntry);
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.ManualAdd, "");
objEntry.Undo = objUndo;
// Adjust the character's Nuyen total.
_objCharacter.Nuyen += frmNewExpense.Amount;
UpdateCharacterInfo();
_blnIsDirty = true;
UpdateWindowTitle();
}
示例5: tsWeaponAccessoryGearMenuAddAsPlugin_Click
//.........这里部分代码省略.........
case "Cyberdecks":
case "Rigger Command Consoles":
Commlink objCommlink = new Commlink(_objCharacter);
objCommlink.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating);
objCommlink.Quantity = frmPickGear.SelectedQty;
objNode.Text = objCommlink.DisplayName;
objGear = objCommlink;
break;
default:
Gear objNewGear = new Gear(_objCharacter);
objNewGear.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating, objWeapons, objWeaponNodes, "", frmPickGear.Hacked, frmPickGear.InherentProgram, true, true, frmPickGear.Aerodynamic);
objNewGear.Quantity = frmPickGear.SelectedQty;
objNode.Text = objNewGear.DisplayName;
objGear = objNewGear;
break;
}
if (objGear.InternalId == Guid.Empty.ToString())
return;
// Reduce the cost for Do It Yourself components.
if (frmPickGear.DoItYourself)
objGear.Cost = (Convert.ToDouble(objGear.Cost, GlobalOptions.Instance.CultureInfo) * 0.5).ToString();
// Reduce the cost to 10% for Hacked programs.
if (frmPickGear.Hacked)
{
if (objGear.Cost != "")
objGear.Cost = "(" + objGear.Cost + ") * 0.1";
if (objGear.Cost3 != "")
objGear.Cost3 = "(" + objGear.Cost3 + ") * 0.1";
if (objGear.Cost6 != "")
objGear.Cost6 = "(" + objGear.Cost6 + ") * 0.1";
if (objGear.Cost10 != "")
objGear.Cost10 = "(" + objGear.Cost10 + ") * 0.1";
if (objGear.Extra == "")
objGear.Extra = LanguageManager.Instance.GetString("Label_SelectGear_Hacked");
else
objGear.Extra += ", " + LanguageManager.Instance.GetString("Label_SelectGear_Hacked");
}
// If the item was marked as free, change its cost.
if (frmPickGear.FreeCost)
{
objGear.Cost = "0";
objGear.Cost3 = "0";
objGear.Cost6 = "0";
objGear.Cost10 = "0";
}
objNode.Text = objGear.DisplayName;
int intCost = objGear.TotalCost;
// Multiply the cost if applicable.
if (objGear.TotalAvail().EndsWith(LanguageManager.Instance.GetString("String_AvailRestricted")) && _objOptions.MultiplyRestrictedCost)
intCost *= _objOptions.RestrictedCostMultiplier;
if (objGear.TotalAvail().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 (!frmPickGear.FreeCost)
{
if (intCost > _objCharacter.Nuyen)
{
_objFunctions.DeleteGear(objGear, treWeapons, _objImprovementManager);
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
if (frmPickGear.AddAgain)
tsVehicleSensorAddAsPlugin_Click(sender, e);
return;
}
else
{
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
objExpense.Create(intCost * -1, LanguageManager.Instance.GetString("String_ExpensePurchaseWeaponGear") + " " + objGear.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Nuyen -= intCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.AddWeaponGear, objGear.InternalId, frmPickGear.SelectedQty);
objExpense.Undo = objUndo;
}
}
objNode.ContextMenuStrip = cmsCyberwareGear;
treWeapons.SelectedNode.Nodes.Add(objNode);
treWeapons.SelectedNode.Expand();
objGear.Parent = objSensor;
objSensor.Children.Add(objGear);
if (frmPickGear.AddAgain)
tsWeaponAccessoryGearMenuAddAsPlugin_Click(sender, e);
UpdateCharacterInfo();
RefreshSelectedWeapon();
}
示例6: tsWeaponAddModification_Click
//.........这里部分代码省略.........
}
if (objXmlWeapon["allowmod"] != null)
{
if (objXmlWeapon["allowmod"].InnerText == "false")
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_CannotModifyWeaponMod"), LanguageManager.Instance.GetString("MessageTitle_CannotModifyWeapon"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
// Set the Weapon properties for the window.
frmPickVehicleMod.WeaponCost = objWeapon.Cost;
frmPickVehicleMod.TotalWeaponCost = objWeapon.TotalCost;
frmPickVehicleMod.ModMultiplier = objWeapon.ModMultiplier;
frmPickVehicleMod.InputFile = "weapons";
frmPickVehicleMod.ShowDialog(this);
// Make sure the dialogue window was not canceled.
if (frmPickVehicleMod.DialogResult == DialogResult.Cancel)
return;
// Locate the selected piece.
XmlNode objXmlMod = objXmlDocument.SelectSingleNode("/chummer/mods/mod[name = \"" + frmPickVehicleMod.SelectedMod + "\"]");
TreeNode objNode = new TreeNode();
WeaponMod objMod = new WeaponMod(_objCharacter);
objMod.Create(objXmlMod, objNode);
objMod.Rating = frmPickVehicleMod.SelectedRating;
objMod.Parent = objWeapon;
// Do not allow the user to add a new Weapon Mod if the Weapon's Capacity has been reached.
if (_objOptions.EnforceCapacity && objWeapon.SlotsRemaining - objMod.Slots < 0)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_CapacityReached"), LanguageManager.Instance.GetString("MessageTitle_CapacityReached"), MessageBoxButtons.OK, MessageBoxIcon.Information);
if (frmPickVehicleMod.AddAgain)
tsWeaponAddModification_Click(sender, e);
return;
}
// Check the item's Cost and make sure the character can afford it.
int intOriginalCost = objWeapon.TotalCost;
objWeapon.WeaponMods.Add(objMod);
int intCost = objWeapon.TotalCost - intOriginalCost;
// Apply a markup if applicable.
if (frmPickVehicleMod.Markup != 0)
{
double dblCost = Convert.ToDouble(intCost, GlobalOptions.Instance.CultureInfo);
dblCost *= 1 + (Convert.ToDouble(frmPickVehicleMod.Markup, GlobalOptions.Instance.CultureInfo) / 100.0);
intCost = Convert.ToInt32(dblCost);
}
// Multiply the cost if applicable.
if (objMod.TotalAvail.EndsWith(LanguageManager.Instance.GetString("String_AvailRestricted")) && _objOptions.MultiplyRestrictedCost)
intCost *= _objOptions.RestrictedCostMultiplier;
if (objMod.TotalAvail.EndsWith(LanguageManager.Instance.GetString("String_AvailForbidden")) && _objOptions.MultiplyForbiddenCost)
intCost *= _objOptions.ForbiddenCostMultiplier;
if (!frmPickVehicleMod.FreeCost)
{
if (intCost > _objCharacter.Nuyen)
{
objWeapon.WeaponMods.Remove(objMod);
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
if (frmPickVehicleMod.AddAgain)
tsWeaponAddModification_Click(sender, e);
return;
}
else
{
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
objExpense.Create(intCost * -1, LanguageManager.Instance.GetString("String_ExpensePurchaseWeaponMod") + " " + objMod.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Nuyen -= intCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.AddWeaponMod, objMod.InternalId);
objExpense.Undo = objUndo;
}
}
objNode.Text = objMod.DisplayName;
objNode.ContextMenuStrip = cmsWeaponMod;
treWeapons.SelectedNode.Nodes.Add(objNode);
treWeapons.SelectedNode.Expand();
UpdateCharacterInfo();
RefreshSelectedWeapon();
_blnIsDirty = true;
UpdateWindowTitle();
if (frmPickVehicleMod.AddAgain)
tsWeaponAddModification_Click(sender, e);
}
示例7: cmdAddArmor_Click
private void cmdAddArmor_Click(object sender, EventArgs e)
{
frmSelectArmor frmPickArmor = new frmSelectArmor(_objCharacter, true);
frmPickArmor.ShowDialog(this);
// Make sure the dialogue window was not canceled.
if (frmPickArmor.DialogResult == DialogResult.Cancel)
return;
// Open the Armor XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("armor.xml");
XmlNode objXmlArmor = objXmlDocument.SelectSingleNode("/chummer/armors/armor[id = \"" + frmPickArmor.SelectedArmor + "\"]");
TreeNode objNode = new TreeNode();
Armor objArmor = new Armor(_objCharacter);
objArmor.Create(objXmlArmor, objNode, cmsArmorMod);
if (objArmor.InternalId == Guid.Empty.ToString())
return;
int intCost = objArmor.TotalCost;
// Apply a markup if applicable.
if (frmPickArmor.Markup != 0)
{
double dblCost = Convert.ToDouble(intCost, GlobalOptions.Instance.CultureInfo);
dblCost *= 1 + (Convert.ToDouble(frmPickArmor.Markup, GlobalOptions.Instance.CultureInfo) / 100.0);
intCost = Convert.ToInt32(dblCost);
}
// Check the item's Cost and make sure the character can afford it.
if (!frmPickArmor.FreeCost)
{
if (intCost > _objCharacter.Nuyen)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
// Remove the Improvements created by the Armor.
_objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Armor, objArmor.InternalId);
if (frmPickArmor.AddAgain)
cmdAddArmor_Click(sender, e);
return;
}
else
{
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
objExpense.Create(intCost * -1, LanguageManager.Instance.GetString("String_ExpensePurchaseArmor") + " " + objArmor.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Nuyen -= intCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.AddArmor, objArmor.InternalId);
objExpense.Undo = objUndo;
}
}
_objCharacter.Armor.Add(objArmor);
objNode.ContextMenuStrip = cmsArmor;
treArmor.Nodes[0].Nodes.Add(objNode);
treArmor.Nodes[0].Expand();
treArmor.SelectedNode = objNode;
UpdateCharacterInfo();
_blnIsDirty = true;
UpdateWindowTitle();
if (frmPickArmor.AddAgain)
cmdAddArmor_Click(sender, e);
}
示例8: tsVehicleAddNexus_Click
private void tsVehicleAddNexus_Click(object sender, EventArgs e)
{
// Make sure a parent items is selected, then open the Select Gear window.
try
{
if (treVehicles.SelectedNode.Level == 0)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_SelectGearVehicle"), LanguageManager.Instance.GetString("MessageTitle_SelectGearVehicle"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
catch
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_SelectGearVehicle"), LanguageManager.Instance.GetString("MessageTitle_SelectGearVehicle"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (treVehicles.SelectedNode.Level > 1)
treVehicles.SelectedNode = treVehicles.SelectedNode.Parent;
// Attempt to locate the selected Vehicle.
Vehicle objSelectedVehicle = _objFunctions.FindVehicle(treVehicles.SelectedNode.Tag.ToString(), _objCharacter.Vehicles);
frmSelectNexus frmPickNexus = new frmSelectNexus(_objCharacter, true);
frmPickNexus.ShowDialog(this);
if (frmPickNexus.DialogResult == DialogResult.Cancel)
return;
Gear objGear = new Gear(_objCharacter);
objGear = frmPickNexus.SelectedNexus;
int intCost = objGear.TotalCost;
// Multiply the cost if applicable.
if (objGear.TotalAvail().EndsWith(LanguageManager.Instance.GetString("String_AvailRestricted")) && _objOptions.MultiplyRestrictedCost)
intCost *= _objOptions.RestrictedCostMultiplier;
if (objGear.TotalAvail().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 (!frmPickNexus.FreeCost)
{
if (intCost > _objCharacter.Nuyen)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
else
{
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
objExpense.Create(intCost * -1, LanguageManager.Instance.GetString("String_ExpensePurchaseVehicleGear") + " " + objGear.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Nuyen -= intCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.AddVehicleGear, objGear.InternalId, 1);
objExpense.Undo = objUndo;
}
}
TreeNode nodNexus = new TreeNode();
nodNexus.Text = objGear.Name;
nodNexus.Tag = objGear.InternalId;
nodNexus.ContextMenuStrip = cmsVehicleGear;
foreach (Gear objChild in objGear.Children)
{
TreeNode nodModule = new TreeNode();
nodModule.Text = objChild.Name;
nodModule.Tag = objChild.InternalId;
nodModule.ContextMenuStrip = cmsVehicleGear;
nodNexus.Nodes.Add(nodModule);
nodNexus.Expand();
}
treVehicles.SelectedNode.Nodes.Add(nodNexus);
treVehicles.SelectedNode.Expand();
objSelectedVehicle.Gear.Add(objGear);
UpdateCharacterInfo();
RefreshSelectedVehicle();
_blnIsDirty = true;
UpdateWindowTitle();
}
示例9: tsVehicleWeaponAccessoryAddGear_Click
//.........这里部分代码省略.........
case "Commlink Upgrade":
Commlink objCommlink = new Commlink(_objCharacter);
objCommlink.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating, false);
objCommlink.Quantity = frmPickGear.SelectedQty;
objNode.Text = objCommlink.DisplayName;
objNewGear = objCommlink;
break;
case "Commlink Operating System":
case "Commlink Operating System Upgrade":
OperatingSystem objOperatingSystem = new OperatingSystem(_objCharacter);
objOperatingSystem.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating, false);
objOperatingSystem.Quantity = frmPickGear.SelectedQty;
objNode.Text = objOperatingSystem.DisplayName;
objNewGear = objOperatingSystem;
break;
default:
Gear objGear = new Gear(_objCharacter);
objGear.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating, objWeapons, objWeaponNodes, "", frmPickGear.Hacked, frmPickGear.InherentProgram, false, true, frmPickGear.Aerodynamic);
objGear.Quantity = frmPickGear.SelectedQty;
objNode.Text = objGear.DisplayName;
objNewGear = objGear;
break;
}
if (objNewGear.InternalId == Guid.Empty.ToString())
return;
// Reduce the cost for Do It Yourself components.
if (frmPickGear.DoItYourself)
objNewGear.Cost = (Convert.ToDouble(objNewGear.Cost, GlobalOptions.Instance.CultureInfo) * 0.5).ToString();
// Reduce the cost to 10% for Hacked programs.
if (frmPickGear.Hacked)
{
if (objNewGear.Cost != "")
objNewGear.Cost = "(" + objNewGear.Cost + ") * 0.1";
if (objNewGear.Cost3 != "")
objNewGear.Cost3 = "(" + objNewGear.Cost3 + ") * 0.1";
if (objNewGear.Cost6 != "")
objNewGear.Cost6 = "(" + objNewGear.Cost6 + ") * 0.1";
if (objNewGear.Cost10 != "")
objNewGear.Cost10 = "(" + objNewGear.Cost10 + ") * 0.1";
if (objNewGear.Extra == "")
objNewGear.Extra = LanguageManager.Instance.GetString("Label_SelectGear_Hacked");
else
objNewGear.Extra += ", " + LanguageManager.Instance.GetString("Label_SelectGear_Hacked");
}
// If the item was marked as free, change its cost.
if (frmPickGear.FreeCost)
{
objNewGear.Cost = "0";
objNewGear.Cost3 = "0";
objNewGear.Cost6 = "0";
objNewGear.Cost10 = "0";
}
int intCost = objNewGear.TotalCost;
// Check the item's Cost and make sure the character can afford it.
if (!frmPickGear.FreeCost)
{
if (intCost > _objCharacter.Nuyen)
{
_objFunctions.DeleteGear(objNewGear, treWeapons, _objImprovementManager);
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
if (frmPickGear.AddAgain)
tsVehicleWeaponAccessoryAddGear_Click(sender, e);
return;
}
else
{
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
objExpense.Create(intCost * -1, LanguageManager.Instance.GetString("String_ExpensePurchaseWeaponGear") + " " + objNewGear.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Nuyen -= intCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.AddWeaponGear, objNewGear.InternalId, 1);
objExpense.Undo = objUndo;
}
}
objAccessory.Gears.Add(objNewGear);
objNode.ContextMenuStrip = cmsVehicleWeaponAccessoryGear;
treVehicles.SelectedNode.Nodes.Add(objNode);
treVehicles.SelectedNode.Expand();
UpdateCharacterInfo();
if (frmPickGear.AddAgain)
tsVehicleWeaponAccessoryAddGear_Click(sender, e);
_blnIsDirty = true;
UpdateWindowTitle();
}
示例10: tsWeaponAddUnderbarrel_Click
private void tsWeaponAddUnderbarrel_Click(object sender, EventArgs e)
{
// Make sure a parent item is selected, then open the Select Accessory window.
try
{
if (treWeapons.SelectedNode.Level == 0)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_SelectWeaponAccessory"), LanguageManager.Instance.GetString("MessageTitle_SelectWeapon"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
catch
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_SelectWeaponAccessory"), LanguageManager.Instance.GetString("MessageTitle_SelectWeapon"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (treWeapons.SelectedNode.Level > 1)
treWeapons.SelectedNode = treWeapons.SelectedNode.Parent;
// Get the information for the currently selected Weapon.
foreach (Weapon objCharacterWeapon in _objCharacter.Weapons)
{
if (treWeapons.SelectedNode.Tag.ToString() == objCharacterWeapon.InternalId)
{
if (objCharacterWeapon.InternalId == treWeapons.SelectedNode.Tag.ToString())
{
if (objCharacterWeapon.Category.StartsWith("Cyberware"))
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_CyberwareUnderbarrel"), LanguageManager.Instance.GetString("MessageTitle_WeaponUnderbarrel"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
}
}
// Locate the Weapon that is selected in the tree.
Weapon objSelectedWeapon = (Weapon)_objFunctions.FindEquipment(treWeapons.SelectedNode.Tag.ToString(), _objCharacter.Weapons, typeof(Weapon));
if (objSelectedWeapon == null)
return;
frmSelectWeapon frmPickWeapon = new frmSelectWeapon(_objCharacter, true);
frmPickWeapon.ShowDialog(this);
// Make sure the dialogue window was not canceled.
if (frmPickWeapon.DialogResult == DialogResult.Cancel)
return;
// Open the Weapons XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("weapons.xml");
XmlNode objXmlWeapon = objXmlDocument.SelectSingleNode("/chummer/weapons/weapon[id = \"" + frmPickWeapon.SelectedWeapon + "\"]");
TreeNode objNode = new TreeNode();
Weapon objWeapon = new Weapon(_objCharacter);
objWeapon.Create(objXmlWeapon, _objCharacter, objNode, cmsWeapon, cmsWeaponAccessory, cmsWeapon);
objWeapon.IsUnderbarrelWeapon = true;
int intCost = objWeapon.TotalCost;
// Apply a markup if applicable.
if (frmPickWeapon.Markup != 0)
{
double dblCost = Convert.ToDouble(intCost, GlobalOptions.Instance.CultureInfo);
dblCost *= 1 + (Convert.ToDouble(frmPickWeapon.Markup, GlobalOptions.Instance.CultureInfo) / 100.0);
intCost = Convert.ToInt32(dblCost);
}
// Check the item's Cost and make sure the character can afford it.
if (!frmPickWeapon.FreeCost)
{
if (intCost > _objCharacter.Nuyen)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
if (frmPickWeapon.AddAgain)
cmdAddWeapon_Click(sender, e);
return;
}
else
{
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
objExpense.Create(intCost * -1, LanguageManager.Instance.GetString("String_ExpensePurchaseWeapon") + " " + objWeapon.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Nuyen -= intCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.AddWeapon, objWeapon.InternalId);
objExpense.Undo = objUndo;
}
}
objSelectedWeapon.Weapons.Add(objWeapon);
objNode.ContextMenuStrip = cmsWeapon;
treWeapons.SelectedNode.Nodes.Add(objNode);
treWeapons.SelectedNode.Expand();
treWeapons.SelectedNode = objNode;//
UpdateCharacterInfo();
//.........这里部分代码省略.........
示例11: tsVehicleSensorAddAsPlugin_Click
//.........这里部分代码省略.........
objNode.Text = objCommlink.DisplayName;
objGear = objCommlink;
break;
case "Commlink Operating System":
case "Commlink Operating System Upgrade":
OperatingSystem objOperatingSystem = new OperatingSystem(_objCharacter);
objOperatingSystem.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating, false);
objOperatingSystem.Quantity = frmPickGear.SelectedQty;
objNode.Text = objOperatingSystem.DisplayName;
objGear = objOperatingSystem;
break;
default:
Gear objNewGear = new Gear(_objCharacter);
objNewGear.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating, objWeapons, objWeaponNodes, "", frmPickGear.Hacked, frmPickGear.InherentProgram, false, true, frmPickGear.Aerodynamic);
objNewGear.Quantity = frmPickGear.SelectedQty;
objNode.Text = objNewGear.DisplayName;
objGear = objNewGear;
break;
}
if (objGear.InternalId == Guid.Empty.ToString())
return;
// Reduce the cost for Do It Yourself components.
if (frmPickGear.DoItYourself)
objGear.Cost = (Convert.ToDouble(objGear.Cost, GlobalOptions.Instance.CultureInfo) * 0.5).ToString();
// Reduce the cost to 10% for Hacked programs.
if (frmPickGear.Hacked)
{
if (objGear.Cost != "")
objGear.Cost = "(" + objGear.Cost + ") * 0.1";
if (objGear.Cost3 != "")
objGear.Cost3 = "(" + objGear.Cost3 + ") * 0.1";
if (objGear.Cost6 != "")
objGear.Cost6 = "(" + objGear.Cost6 + ") * 0.1";
if (objGear.Cost10 != "")
objGear.Cost10 = "(" + objGear.Cost10 + ") * 0.1";
if (objGear.Extra == "")
objGear.Extra = LanguageManager.Instance.GetString("Label_SelectGear_Hacked");
else
objGear.Extra += ", " + LanguageManager.Instance.GetString("Label_SelectGear_Hacked");
}
// If the item was marked as free, change its cost.
if (frmPickGear.FreeCost)
{
objGear.Cost = "0";
objGear.Cost3 = "0";
objGear.Cost6 = "0";
objGear.Cost10 = "0";
}
objNode.Text = objGear.DisplayName;
int intCost = objGear.TotalCost;
// Check the item's Cost and make sure the character can afford it.
if (!frmPickGear.FreeCost)
{
if (intCost > _objCharacter.Nuyen)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
if (frmPickGear.AddAgain)
tsVehicleSensorAddAsPlugin_Click(sender, e);
return;
}
else
{
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
objExpense.Create(intCost * -1, LanguageManager.Instance.GetString("String_ExpensePurchaseVehicleGear") + " " + objGear.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Nuyen -= intCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.AddVehicleGear, objGear.InternalId, frmPickGear.SelectedQty);
objExpense.Undo = objUndo;
}
}
objGear.Parent = objSensor;
objNode.ContextMenuStrip = cmsVehicleGear;
treVehicles.SelectedNode.Nodes.Add(objNode);
treVehicles.SelectedNode.Expand();
objSensor.Gears.Add(objGear);
if (frmPickGear.AddAgain)
tsVehicleSensorAddAsPlugin_Click(sender, e);
UpdateCharacterInfo();
RefreshSelectedVehicle();
_blnIsDirty = true;
UpdateWindowTitle();
}
示例12: tsVehicleAddWeaponWeapon_Click
private void tsVehicleAddWeaponWeapon_Click(object sender, EventArgs e)
{
VehicleMod objMod = new VehicleMod(_objCharacter);
// Make sure that a Weapon Mount has been selected.
try
{
// Attempt to locate the selected VehicleMod.
objMod = (VehicleMod)_objFunctions.FindEquipment(treVehicles.SelectedNode.Tag.ToString(), _objCharacter.Vehicles, typeof(VehicleMod));
if (!objMod.WeaponMount)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_CannotAddWeapon"), LanguageManager.Instance.GetString("MessageTitle_CannotAddWeapon"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
catch
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_CannotAddWeapon"), LanguageManager.Instance.GetString("MessageTitle_CannotAddWeapon"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
frmSelectWeapon frmPickWeapon = new frmSelectWeapon(_objCharacter, true);
frmPickWeapon.ShowDialog();
if (frmPickWeapon.DialogResult == DialogResult.Cancel)
return;
// Open the Weapons XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("weapons.xml");
XmlNode objXmlWeapon = objXmlDocument.SelectSingleNode("/chummer/weapons/weapon[id = \"" + frmPickWeapon.SelectedWeapon + "\"]");
TreeNode objNode = new TreeNode();
Weapon objWeapon = new Weapon(_objCharacter);
objWeapon.Create(objXmlWeapon, _objCharacter, objNode, cmsVehicleWeapon, cmsVehicleWeaponAccessory, cmsVehicleWeaponMod);
objWeapon.VehicleMounted = true;
int intCost = objWeapon.TotalCost;
// Apply a markup if applicable.
if (frmPickWeapon.Markup != 0)
{
double dblCost = Convert.ToDouble(intCost, GlobalOptions.Instance.CultureInfo);
dblCost *= 1 + (Convert.ToDouble(frmPickWeapon.Markup, GlobalOptions.Instance.CultureInfo) / 100.0);
intCost = Convert.ToInt32(dblCost);
}
if (!frmPickWeapon.FreeCost)
{
// Check the item's Cost and make sure the character can afford it.
if (intCost > _objCharacter.Nuyen)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
if (frmPickWeapon.AddAgain)
tsVehicleAddWeaponWeapon_Click(sender, e);
return;
}
else
{
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
objExpense.Create(intCost * -1, LanguageManager.Instance.GetString("String_ExpensePurchaseVehicleWeapon") + " " + objWeapon.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Nuyen -= intCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.AddVehicleWeapon, objWeapon.InternalId);
objExpense.Undo = objUndo;
}
}
objMod.Weapons.Add(objWeapon);
objNode.ContextMenuStrip = cmsVehicleWeapon;
treVehicles.SelectedNode.Nodes.Add(objNode);
treVehicles.SelectedNode.Expand();
if (frmPickWeapon.AddAgain)
tsVehicleAddWeaponWeapon_Click(sender, e);
UpdateCharacterInfo();
_blnIsDirty = true;
UpdateWindowTitle();
}
示例13: tsGearAddNexus_Click
private void tsGearAddNexus_Click(object sender, EventArgs e)
{
treGear.SelectedNode = treGear.Nodes[0];
frmSelectNexus frmPickNexus = new frmSelectNexus(_objCharacter);
frmPickNexus.ShowDialog(this);
if (frmPickNexus.DialogResult == DialogResult.Cancel)
return;
Gear objGear = new Gear(_objCharacter);
objGear = frmPickNexus.SelectedNexus;
int intCost = objGear.TotalCost;
// Check the item's Cost and make sure the character can afford it.
if (!frmPickNexus.FreeCost)
{
if (intCost > _objCharacter.Nuyen)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
else
{
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
objExpense.Create(intCost * -1, LanguageManager.Instance.GetString("String_ExpensePurchaseGear") + " " + objGear.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Nuyen -= intCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.AddGear, objGear.InternalId, 1);
objExpense.Undo = objUndo;
}
}
TreeNode nodNexus = new TreeNode();
nodNexus.Text = objGear.Name;
nodNexus.Tag = objGear.InternalId;
nodNexus.ContextMenuStrip = cmsGear;
foreach (Gear objChild in objGear.Gears)
{
TreeNode nodModule = new TreeNode();
nodModule.Text = objChild.Name;
nodModule.Tag = objChild.InternalId;
nodModule.ContextMenuStrip = cmsGear;
nodNexus.Nodes.Add(nodModule);
nodNexus.Expand();
}
treGear.Nodes[0].Nodes.Add(nodNexus);
treGear.Nodes[0].Expand();
_objCharacter.Gear.Add(objGear);
UpdateCharacterInfo();
_blnIsDirty = true;
UpdateWindowTitle();
}
示例14: tsVehicleAddGear_Click
//.........这里部分代码省略.........
// If the item was marked as free, change its cost.
if (frmPickGear.FreeCost)
{
objGear.Cost = "0";
objGear.Cost3 = "0";
objGear.Cost6 = "0";
objGear.Cost10 = "0";
}
objGear.Quantity = frmPickGear.SelectedQty;
objNode.Text = objGear.DisplayName;
// Change the cost of the Sensor itself to 0.
//if (frmPickGear.SelectedCategory == "Sensors")
//{
// objGear.Cost = "0";
// objGear.Cost3 = "0";
// objGear.Cost6 = "0";
// objGear.Cost10 = "0";
//}
int intCost = objGear.TotalCost;
// Multiply the cost if applicable.
if (objGear.TotalAvail().EndsWith(LanguageManager.Instance.GetString("String_AvailRestricted")) && _objOptions.MultiplyRestrictedCost)
intCost *= _objOptions.RestrictedCostMultiplier;
if (objGear.TotalAvail().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 (!frmPickGear.FreeCost)
{
if (intCost > _objCharacter.Nuyen)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information);
if (frmPickGear.AddAgain)
tsVehicleAddGear_Click(sender, e);
return;
}
else
{
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
objExpense.Create(intCost * -1, LanguageManager.Instance.GetString("String_ExpensePurchaseVehicleGear") + " " + objGear.DisplayNameShort, ExpenseType.Nuyen, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Nuyen -= intCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateNuyen(NuyenExpenseType.AddVehicleGear, objGear.InternalId, 1);
objExpense.Undo = objUndo;
}
}
objNode.ContextMenuStrip = cmsVehicleGear;
bool blnMatchFound = false;
// If this is Ammunition, see if the character already has it on them.
if (objGear.Category == "Ammunition")
{
foreach (Gear objVehicleGear in objSelectedVehicle.Gear)
{
if (objVehicleGear.Name == objGear.Name && objVehicleGear.Category == objGear.Category && objVehicleGear.Rating == objGear.Rating && objVehicleGear.Extra == objGear.Extra)
{
// A match was found, so increase the quantity instead.
objVehicleGear.Quantity += objGear.Quantity;
blnMatchFound = true;
foreach (TreeNode objGearNode in treVehicles.SelectedNode.Nodes)
{
if (objVehicleGear.InternalId == objGearNode.Tag.ToString())
{
objGearNode.Text = objVehicleGear.DisplayName;
break;
}
}
break;
}
}
}
if (!blnMatchFound)
{
treVehicles.SelectedNode.Nodes.Add(objNode);
treVehicles.SelectedNode.Expand();
// Add the Gear to the Vehicle.
objSelectedVehicle.Gear.Add(objGear);
}
if (frmPickGear.AddAgain)
tsVehicleAddGear_Click(sender, e);
UpdateCharacterInfo();
RefreshSelectedVehicle();
_blnIsDirty = true;
UpdateWindowTitle();
}
示例15: cmdAddVehicle_Click
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[id = \"" + 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);
}
// 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);
}