本文整理汇总了C#中Chummer.frmSelectGear类的典型用法代码示例。如果您正苦于以下问题:C# frmSelectGear类的具体用法?C# frmSelectGear怎么用?C# frmSelectGear使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
frmSelectGear类属于Chummer命名空间,在下文中一共展示了frmSelectGear类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: tsVehicleAddGear_Click
private void tsVehicleAddGear_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;
// Locate the selected Vehicle.
Vehicle objSelectedVehicle = _objFunctions.FindVehicle(treVehicles.SelectedNode.Tag.ToString(), _objCharacter.Vehicles);
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter);
//frmPickGear.ShowPositiveCapacityOnly = true;
frmPickGear.ShowDialog(this);
if (frmPickGear.DialogResult == DialogResult.Cancel)
return;
// Open the Gear XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + frmPickGear.SelectedGear + "\" and category = \"" + frmPickGear.SelectedCategory + "\"]");
// Create the new piece of Gear.
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
TreeNode objNode = new TreeNode();
Gear objGear = new Gear(_objCharacter);
switch (frmPickGear.SelectedCategory)
{
case "Commlinks":
case "Cyberdecks":
case "Rigger Command Consoles":
Commlink objCommlink = new Commlink(_objCharacter);
objCommlink.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating, false);
objCommlink.Quantity = frmPickGear.SelectedQty;
objGear = objCommlink;
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;
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";
}
objGear.Quantity = frmPickGear.SelectedQty;
objNode.Text = objGear.DisplayName;
try
{
nudVehicleRating.Increment = objGear.CostFor;
nudVehicleRating.Minimum = nudGearQty.Increment;
}
catch
{
//.........这里部分代码省略.........
示例2: tsVehicleSensorAddAsPlugin_Click
private void tsVehicleSensorAddAsPlugin_Click(object sender, EventArgs e)
{
// Make sure a parent items is selected, then open the Select Gear window.
try
{
if (treVehicles.SelectedNode.Level < 2)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_ModifyVehicleGear"), LanguageManager.Instance.GetString("MessageTitle_ModifyVehicleGear"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
catch
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_ModifyVehicleGear"), LanguageManager.Instance.GetString("MessageTitle_ModifyVehicleGear"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
// Locate the Vehicle Sensor Gear.
bool blnFound = false;
Vehicle objVehicle = new Vehicle(_objCharacter);
Gear objSensor = _objFunctions.FindVehicleGear(treVehicles.SelectedNode.Tag.ToString(), _objCharacter.Vehicles, out objVehicle);
if (objSensor != null)
blnFound = true;
// Make sure the Gear was found.
if (!blnFound)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_ModifyVehicleGear"), LanguageManager.Instance.GetString("MessageTitle_ModifyVehicleGear"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + objSensor.Name + "\" and category = \"" + objSensor.Category + "\"]");
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter);
//frmPickGear.ShowNegativeCapacityOnly = true;
if (objXmlGear != null)
{
if (objXmlGear.InnerXml.Contains("<addoncategory>"))
{
string strCategories = "";
foreach (XmlNode objXmlCategory in objXmlGear.SelectNodes("addoncategory"))
strCategories += objXmlCategory.InnerText + ",";
// Remove the trailing comma.
strCategories = strCategories.Substring(0, strCategories.Length - 1);
frmPickGear.AddCategory(strCategories);
}
}
if (frmPickGear.AllowedCategories != "")
frmPickGear.AllowedCategories += objSensor.Category + ",";
frmPickGear.ShowDialog(this);
if (frmPickGear.DialogResult == DialogResult.Cancel)
return;
// Open the Gear XML file and locate the selected piece.
objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + frmPickGear.SelectedGear + "\" and category = \"" + frmPickGear.SelectedCategory + "\"]");
// Create the new piece of Gear.
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
TreeNode objNode = new TreeNode();
Gear objGear = new Gear(_objCharacter);
switch (frmPickGear.SelectedCategory)
{
case "Commlinks":
case "Cyberdecks":
case "Rigger Command Consoles":
Commlink objCommlink = new Commlink(_objCharacter);
objCommlink.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating, false);
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, 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 != "")
//.........这里部分代码省略.........
示例3: PickGear
/// <summary>
/// Select a piece of Gear to be added to the character.
/// </summary>
private bool PickGear()
{
bool blnNullParent = false;
Gear objSelectedGear = _objFunctions.FindGear(treGear.SelectedNode.Tag.ToString(), _objCharacter.Gear);
if (objSelectedGear == null)
{
objSelectedGear = new Gear(_objCharacter);
blnNullParent = true;
}
// Open the Gear XML file and locate the selected Gear.
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + objSelectedGear.Name + "\" and category = \"" + objSelectedGear.Category + "\"]");
bool blnFakeCareerMode = false;
if (_objCharacter.Metatype == "A.I." || _objCharacter.MetatypeCategory == "Technocritters" || _objCharacter.MetatypeCategory == "Protosapients")
blnFakeCareerMode = true;
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter, blnFakeCareerMode, objSelectedGear.ChildAvailModifier, objSelectedGear.ChildCostMultiplier);
try
{
if (treGear.SelectedNode.Level > 0)
{
if (objXmlGear.InnerXml.Contains("<addoncategory>"))
{
string strCategories = "";
foreach (XmlNode objXmlCategory in objXmlGear.SelectNodes("addoncategory"))
strCategories += objXmlCategory.InnerText + ",";
// Remove the trailing comma.
strCategories = strCategories.Substring(0, strCategories.Length - 1);
frmPickGear.AddCategory(strCategories);
}
if (frmPickGear.AllowedCategories != "")
frmPickGear.AllowedCategories += objSelectedGear.Category + ",";
// If the Gear has a Capacity with no brackets (meaning it grants Capacity), show only Subsystems (those that conume Capacity).
if (!objSelectedGear.Capacity.Contains('['))
frmPickGear.MaximumCapacity = objSelectedGear.CapacityRemaining;
if (objSelectedGear.Category == "Commlinks" || objSelectedGear.Category == "Cyberdecks")
{
Commlink objCommlink = (Commlink)objSelectedGear;
frmPickGear.CommlinkResponse = objCommlink.DeviceRating;
}
}
}
catch
{
}
frmPickGear.ShowDialog(this);
// Make sure the dialogue window was not canceled.
if (frmPickGear.DialogResult == DialogResult.Cancel)
return false;
TreeNode objNode = new TreeNode();
// Open the Cyberware XML file and locate the selected piece.
objXmlDocument = XmlManager.Instance.Load("gear.xml");
objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + frmPickGear.SelectedGear + "\" and category = \"" + frmPickGear.SelectedCategory + "\"]");
// Create the new piece of Gear.
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
Gear objNewGear = new Gear(_objCharacter);
switch (frmPickGear.SelectedCategory)
{
case "Commlinks":
case "Cyberdecks":
case "Rigger Command Consoles":
Commlink objCommlink = new Commlink(_objCharacter);
objCommlink.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating);
objCommlink.Quantity = frmPickGear.SelectedQty;
try
{
_blnSkipRefresh = true;
nudGearQty.Increment = objCommlink.CostFor;
//nudGearQty.Minimum = nudGearQty.Increment;
_blnSkipRefresh = false;
}
catch
{
}
objNode.Text = objCommlink.DisplayName;
// If a Commlink has just been added, see if the character already has one. If not, make it the active Commlink.
if (_objFunctions.FindCharacterCommlinks(_objCharacter.Gear).Count == 0 && frmPickGear.SelectedCategory == "Commlinks")
objCommlink.IsActive = true;
objNewGear = objCommlink;
break;
default:
Gear objGear = new Gear(_objCharacter);
objGear.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating, objWeapons, objWeaponNodes, "", frmPickGear.Hacked, frmPickGear.InherentProgram, true, true, frmPickGear.Aerodynamic);
objGear.Quantity = frmPickGear.SelectedQty;
//.........这里部分代码省略.........
示例4: PickArmorGear
/// <summary>
/// Select a piece of Gear and add it to a piece of Armor.
/// </summary>
/// <param name="blnShowArmorCapacityOnly">Whether or not only items that consume capacity should be shown.</param>
private bool PickArmorGear(bool blnShowArmorCapacityOnly = false)
{
bool blnNullParent = true;
Gear objSelectedGear = new Gear(_objCharacter);
Armor objSelectedArmor = new Armor(_objCharacter);
foreach (Armor objArmor in _objCharacter.Armor)
{
if (objArmor.InternalId == treArmor.SelectedNode.Tag.ToString())
objSelectedArmor = objArmor;
}
if (treArmor.SelectedNode.Level > 1)
{
objSelectedGear = _objFunctions.FindArmorGear(treArmor.SelectedNode.Tag.ToString(), _objCharacter.Armor, out objSelectedArmor);
if (objSelectedGear != null)
blnNullParent = false;
}
// Open the Gear XML file and locate the selected Gear.
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + objSelectedGear.Name + "\" and category = \"" + objSelectedGear.Category + "\"]");
bool blnFakeCareerMode = false;
if (_objCharacter.Metatype == "A.I." || _objCharacter.MetatypeCategory == "Technocritters" || _objCharacter.MetatypeCategory == "Protosapients")
blnFakeCareerMode = true;
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter, blnFakeCareerMode);
frmPickGear.ShowArmorCapacityOnly = blnShowArmorCapacityOnly;
frmPickGear.CapacityDisplayStyle = objSelectedArmor.CapacityDisplayStyle;
try
{
if (treArmor.SelectedNode.Level > 1)
{
if (objXmlGear.InnerXml.Contains("<addoncategory>"))
{
string strCategories = "";
foreach (XmlNode objXmlCategory in objXmlGear.SelectNodes("addoncategory"))
strCategories += objXmlCategory.InnerText + ",";
// Remove the trailing comma.
strCategories = strCategories.Substring(0, strCategories.Length - 1);
frmPickGear.AddCategory(strCategories);
}
if (frmPickGear.AllowedCategories != "")
frmPickGear.AllowedCategories += objSelectedGear.Category + ",";
// If the Gear has a Capacity with no brackets (meaning it grants Capacity), show only Subsystems (those that conume Capacity).
if (!objSelectedGear.Capacity.Contains('['))
frmPickGear.MaximumCapacity = objSelectedGear.CapacityRemaining;
if (objSelectedGear.Category == "Commlinks" || objSelectedGear.Category == "Cyberdecks")
{
Commlink objCommlink = (Commlink)objSelectedGear;
frmPickGear.CommlinkResponse = objCommlink.DeviceRating;
}
}
else if (treArmor.SelectedNode.Level == 1)
{
// Open the Armor XML file and locate the selected Gear.
objXmlDocument = XmlManager.Instance.Load("armor.xml");
objXmlGear = objXmlDocument.SelectSingleNode("/chummer/armors/armor[name = \"" + objSelectedArmor.Name + "\"]");
if (objXmlGear.InnerXml.Contains("<addoncategory>"))
{
string strCategories = "";
foreach (XmlNode objXmlCategory in objXmlGear.SelectNodes("addoncategory"))
strCategories += objXmlCategory.InnerText + ",";
// Remove the trailing comma.
strCategories = strCategories.Substring(0, strCategories.Length - 1);
frmPickGear.AddCategory(strCategories);
}
}
}
catch
{
}
frmPickGear.ShowDialog(this);
// Make sure the dialogue window was not canceled.
if (frmPickGear.DialogResult == DialogResult.Cancel)
return false;
TreeNode objNode = new TreeNode();
// Open the Cyberware XML file and locate the selected piece.
objXmlDocument = XmlManager.Instance.Load("gear.xml");
objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + frmPickGear.SelectedGear + "\" and category = \"" + frmPickGear.SelectedCategory + "\"]");
// Create the new piece of Gear.
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
Gear objNewGear = new Gear(_objCharacter);
switch (frmPickGear.SelectedCategory)
{
//.........这里部分代码省略.........
示例5: tsWeaponAccessoryGearMenuAddAsPlugin_Click
private void tsWeaponAccessoryGearMenuAddAsPlugin_Click(object sender, EventArgs e)
{
// Locate the Vehicle Sensor Gear.
bool blnFound = false;
WeaponAccessory objFoundAccessory = new WeaponAccessory(_objCharacter);
Gear objSensor = (Gear)_objFunctions.FindEquipment(treWeapons.SelectedNode.Tag.ToString(), _objCharacter.Weapons, typeof(Gear));
if (objSensor != null)
blnFound = true;
if (objSensor.Parent != null)
objFoundAccessory = (WeaponAccessory)objSensor.Parent;
// Make sure the Gear was found.
if (!blnFound)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_ModifyVehicleGear"), LanguageManager.Instance.GetString("MessageTitle_SelectGear"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[id = \"" + objSensor.ExternalId + "\"]");
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter);
//frmPickGear.ShowNegativeCapacityOnly = true;
if (objXmlGear["addoncategory"] != null)
{
string strCategories = "";
foreach (XmlNode objXmlCategory in objXmlGear.SelectNodes("addoncategory"))
strCategories += objXmlCategory.InnerText + ",";
// Remove the trailing comma.
strCategories = strCategories.Substring(0, strCategories.Length - 1);
frmPickGear.AddCategory(strCategories);
}
if (frmPickGear.AllowedCategories != "")
frmPickGear.AllowedCategories += objSensor.Category + ",";
frmPickGear.ShowDialog(this);
if (frmPickGear.DialogResult == DialogResult.Cancel)
return;
// Open the Gear XML file and locate the selected piece.
objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[id = \"" + frmPickGear.SelectedGear + "\"]");
// Create the new piece of Gear.
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
TreeNode objNode = new TreeNode();
Gear objGear = new Gear(_objCharacter);
switch (frmPickGear.SelectedCategory)
{
case "Commlink":
case "Commlink Upgrade":
Commlink objCommlink = new Commlink(_objCharacter);
objCommlink.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating);
objCommlink.Quantity = frmPickGear.SelectedQty;
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);
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, 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";
//.........这里部分代码省略.........
示例6: tsVehicleWeaponAccessoryAddGear_Click
private void tsVehicleWeaponAccessoryAddGear_Click(object sender, EventArgs e)
{
WeaponAccessory objAccessory = _objFunctions.FindVehicleWeaponAccessory(treVehicles.SelectedNode.Tag.ToString(), _objCharacter.Vehicles);
// Make sure the Weapon Accessory is allowed to accept Gear.
if (objAccessory.AllowGear == null)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_WeaponGear"), LanguageManager.Instance.GetString("MessageTitle_CyberwareGear"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter, false);
string strCategories = "";
foreach (XmlNode objXmlCategory in objAccessory.AllowGear)
strCategories += objXmlCategory.InnerText + ",";
frmPickGear.AllowedCategories = strCategories;
frmPickGear.ShowDialog(this);
if (frmPickGear.DialogResult == DialogResult.Cancel)
return;
TreeNode objNode = new TreeNode();
// Open the Gear XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + frmPickGear.SelectedGear + "\" and category = \"" + frmPickGear.SelectedCategory + "\"]");
// Create the new piece of Gear.
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
Gear objNewGear = new Gear(_objCharacter);
switch (frmPickGear.SelectedCategory)
{
case "Commlinks":
case "Cyberdecks":
case "Rigger Command Consoles":
Commlink objCommlink = new Commlink(_objCharacter);
objCommlink.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating, false);
objCommlink.Quantity = frmPickGear.SelectedQty;
try
{
_blnSkipRefresh = true;
nudGearQty.Increment = objCommlink.CostFor;
//nudGearQty.Minimum = nudGearQty.Increment;
_blnSkipRefresh = false;
}
catch
{
}
objNode.Text = objCommlink.DisplayName;
objNewGear = objCommlink;
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;
try
{
_blnSkipRefresh = true;
nudGearQty.Increment = objGear.CostFor;
//nudGearQty.Minimum = nudGearQty.Increment;
_blnSkipRefresh = false;
}
catch
{
}
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";
//.........这里部分代码省略.........
示例7: tsWeaponAccessoryGearMenuAddAsPlugin_Click
private void tsWeaponAccessoryGearMenuAddAsPlugin_Click(object sender, EventArgs e)
{
// Locate the Vehicle Sensor Gear.
bool blnFound = false;
WeaponAccessory objFoundAccessory = new WeaponAccessory(_objCharacter);
Gear objSensor = _objFunctions.FindWeaponGear(treWeapons.SelectedNode.Tag.ToString(), _objCharacter.Weapons, out objFoundAccessory);
if (objSensor != null)
blnFound = true;
// Make sure the Gear was found.
if (!blnFound)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_ModifyVehicleGear"), LanguageManager.Instance.GetString("MessageTitle_SelectGear"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + objSensor.Name + "\" and category = \"" + objSensor.Category + "\"]");
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter, true);
//frmPickGear.ShowNegativeCapacityOnly = true;
if (objXmlGear.InnerXml.Contains("<addoncategory>"))
{
string strCategories = "";
foreach (XmlNode objXmlCategory in objXmlGear.SelectNodes("addoncategory"))
strCategories += objXmlCategory.InnerText + ",";
// Remove the trailing comma.
strCategories = strCategories.Substring(0, strCategories.Length - 1);
frmPickGear.AddCategory(strCategories);
}
if (frmPickGear.AllowedCategories != "")
frmPickGear.AllowedCategories += objSensor.Category + ",";
frmPickGear.ShowDialog(this);
if (frmPickGear.DialogResult == DialogResult.Cancel)
return;
// Open the Gear XML file and locate the selected piece.
objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + frmPickGear.SelectedGear + "\" and category = \"" + frmPickGear.SelectedCategory + "\"]");
// Create the new piece of Gear.
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
TreeNode objNode = new TreeNode();
Gear objGear = new Gear(_objCharacter);
switch (frmPickGear.SelectedCategory)
{
case "Commlinks":
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";
//.........这里部分代码省略.........
示例8: tsCyberwareAddGear_Click
private void tsCyberwareAddGear_Click(object sender, EventArgs e)
{
// Make sure a parent items is selected, then open the Select Gear window.
try
{
if (treCyberware.SelectedNode.Level == 0)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_SelectCyberware"), LanguageManager.Instance.GetString("MessageTitle_SelectCyberware"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
catch
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_SelectCyberware"), LanguageManager.Instance.GetString("MessageTitle_SelectCyberware"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
Cyberware objCyberware = new Cyberware(_objCharacter);
foreach (Cyberware objCharacterCyberware in _objCharacter.Cyberware)
{
if (objCharacterCyberware.InternalId == treCyberware.SelectedNode.Tag.ToString())
{
objCyberware = objCharacterCyberware;
break;
}
foreach (Cyberware objChild in objCharacterCyberware.Cyberwares)
{
if (objChild.InternalId == treCyberware.SelectedNode.Tag.ToString())
{
objCyberware = objChild;
break;
}
}
}
// Make sure the Cyberware is allowed to accept Gear.
if (objCyberware.AllowGear == null)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_CyberwareGear"), LanguageManager.Instance.GetString("MessageTitle_CyberwareGear"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter, false);
string strCategories = "";
foreach (XmlNode objXmlCategory in objCyberware.AllowGear)
strCategories += objXmlCategory.InnerText + ",";
frmPickGear.AllowedCategories = strCategories;
frmPickGear.ShowDialog(this);
if (frmPickGear.DialogResult == DialogResult.Cancel)
return;
TreeNode objNode = new TreeNode();
// Open the Gear XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[id = \"" + frmPickGear.SelectedGear + "\"]");
// Create the new piece of Gear.
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
Gear objNewGear = new Gear(_objCharacter);
switch (frmPickGear.SelectedCategory)
{
case "Commlink":
case "Commlink Upgrade":
Commlink objCommlink = new Commlink(_objCharacter);
objCommlink.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating);
objCommlink.Quantity = frmPickGear.SelectedQty;
try
{
_blnSkipRefresh = true;
nudGearQty.Increment = objCommlink.CostFor;
//nudGearQty.Minimum = nudGearQty.Increment;
_blnSkipRefresh = false;
}
catch
{
}
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);
objOperatingSystem.Quantity = frmPickGear.SelectedQty;
try
{
_blnSkipRefresh = true;
nudGearQty.Increment = objOperatingSystem.CostFor;
//nudGearQty.Minimum = nudGearQty.Increment;
_blnSkipRefresh = false;
}
catch
{
}
objNode.Text = objOperatingSystem.DisplayName;
//.........这里部分代码省略.........
示例9: tsCyberwareAddGear_Click
private void tsCyberwareAddGear_Click(object sender, EventArgs e)
{
// Make sure a parent items is selected, then open the Select Gear window.
try
{
if (treCyberware.SelectedNode.Level == 0)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_SelectCyberware"), LanguageManager.Instance.GetString("MessageTitle_SelectCyberware"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
catch
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_SelectCyberware"), LanguageManager.Instance.GetString("MessageTitle_SelectCyberware"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
Cyberware objCyberware = new Cyberware(_objCharacter);
foreach (Cyberware objCharacterCyberware in _objCharacter.Cyberware)
{
if (objCharacterCyberware.InternalId == treCyberware.SelectedNode.Tag.ToString())
{
objCyberware = objCharacterCyberware;
break;
}
foreach (Cyberware objChild in objCharacterCyberware.Children)
{
if (objChild.InternalId == treCyberware.SelectedNode.Tag.ToString())
{
objCyberware = objChild;
break;
}
}
}
// Make sure the Cyberware is allowed to accept Gear.
if (objCyberware.AllowGear == null)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_CyberwareGear"), LanguageManager.Instance.GetString("MessageTitle_CyberwareGear"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter, true);
string strCategories = "";
foreach (XmlNode objXmlCategory in objCyberware.AllowGear)
strCategories += objXmlCategory.InnerText + ",";
frmPickGear.AllowedCategories = strCategories;
frmPickGear.ShowDialog(this);
if (frmPickGear.DialogResult == DialogResult.Cancel)
return;
TreeNode objNode = new TreeNode();
// Open the Gear XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + frmPickGear.SelectedGear + "\" and category = \"" + frmPickGear.SelectedCategory + "\"]");
// Create the new piece of Gear.
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
Gear objNewGear = new Gear(_objCharacter);
switch (frmPickGear.SelectedCategory)
{
case "Commlinks":
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;
objNewGear = objCommlink;
break;
default:
Gear objGear = new Gear(_objCharacter);
objGear.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating, objWeapons, objWeaponNodes, "", frmPickGear.Hacked, frmPickGear.InherentProgram, true, 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";
//.........这里部分代码省略.........
示例10: PickGear
/// <summary>
/// Select a piece of Gear to be added to the character.
/// </summary>
/// <param name="blnAmmoOnly">Whether or not only Ammunition should be shown in the window.</param>
/// <param name="objStackGear">Whether or not the selected item should stack with a matching item on the character.</param>
/// <param name="strForceItemValue">Force the user to select an item with the passed name..</param>
private bool PickGear(bool blnAmmoOnly = false, Gear objStackGear = null, string strForceItemValue = "")
{
bool blnNullParent = false;
Gear objSelectedGear = new Gear(_objCharacter);
if (treGear.SelectedNode != null)
objSelectedGear = _objFunctions.FindGear(treGear.SelectedNode.Tag.ToString(), _objCharacter.Gear);
if (objSelectedGear == null)
{
objSelectedGear = new Gear(_objCharacter);
blnNullParent = true;
}
ExpenseUndo objUndo = new ExpenseUndo();
// Open the Gear XML file and locate the selected Gear.
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + objSelectedGear.Name + "\" and category = \"" + objSelectedGear.Category + "\"]");
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter, true, objSelectedGear.ChildAvailModifier, objSelectedGear.ChildCostMultiplier);
try
{
if (treGear.SelectedNode.Level > 0)
{
if (objXmlGear.InnerXml.Contains("<addoncategory>"))
{
string strCategories = "";
foreach (XmlNode objXmlCategory in objXmlGear.SelectNodes("addoncategory"))
strCategories += objXmlCategory.InnerText + ",";
// Remove the trailing comma.
strCategories = strCategories.Substring(0, strCategories.Length - 1);
frmPickGear.AddCategory(strCategories);
}
if (frmPickGear.AllowedCategories != "")
frmPickGear.AllowedCategories += objSelectedGear.Category + ",";
// If the Gear has a Capacity with no brackets (meaning it grants Capacity), show only Subsystems (those that conume Capacity).
if (!objSelectedGear.Capacity.Contains('['))
{
frmPickGear.MaximumCapacity = objSelectedGear.CapacityRemaining;
// Do not allow the user to add a new piece of Gear if its Capacity has been reached.
if (_objOptions.EnforceCapacity && objSelectedGear.CapacityRemaining < 0)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_CapacityReached"), LanguageManager.Instance.GetString("MessageTitle_CapacityReached"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
}
if (objSelectedGear.Category == "Commlink")
{
Commlink objCommlink = (Commlink)objSelectedGear;
frmPickGear.CommlinkResponse = objCommlink.DeviceRating;
// If a Commlink has just been added, see if the character already has one. If not, make it the active Commlink.
if (_objFunctions.FindCharacterCommlinks(_objCharacter.Gear).Count == 0)
objCommlink.IsActive = true;
}
}
}
catch
{
}
if (blnAmmoOnly)
{
frmPickGear.AllowedCategories = "Ammunition";
frmPickGear.SelectedGear = objSelectedGear.Name;
}
frmPickGear.ShowDialog(this);
// Make sure the dialogue window was not canceled.
if (frmPickGear.DialogResult == DialogResult.Cancel)
return false;
TreeNode objNode = new TreeNode();
// Open the Cyberware XML file and locate the selected piece.
objXmlDocument = XmlManager.Instance.Load("gear.xml");
objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + frmPickGear.SelectedGear + "\" and category = \"" + frmPickGear.SelectedCategory + "\"]");
// Create the new piece of Gear.
Gear objNewGear = new Gear(_objCharacter);
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
switch (frmPickGear.SelectedCategory)
{
case "Commlinks":
case "Cyberdecks":
case "Rigger Command Consoles":
Commlink objCommlink = new Commlink(_objCharacter);
//.........这里部分代码省略.........
示例11: PickArmorGear
/// <summary>
/// Select a piece of Gear and add it to a piece of Armor.
/// </summary>
/// <param name="blnShowArmorCapacityOnly">Whether or not only items that consume capacity should be shown.</param>
private bool PickArmorGear(bool blnShowArmorCapacityOnly = false)
{
bool blnNullParent = true;
Gear objSelectedGear = new Gear(_objCharacter);
Armor objSelectedArmor = new Armor(_objCharacter);
ExpenseUndo objUndo = new ExpenseUndo();
foreach (Armor objArmor in _objCharacter.Armor)
{
if (objArmor.InternalId == treArmor.SelectedNode.Tag.ToString())
objSelectedArmor = objArmor;
}
if (treArmor.SelectedNode.Level > 1)
{
objSelectedGear = _objFunctions.FindArmorGear(treArmor.SelectedNode.Tag.ToString(), _objCharacter.Armor, out objSelectedArmor);
if (objSelectedGear != null)
blnNullParent = false;
}
// Open the Gear XML file and locate the selected Gear.
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + objSelectedGear.Name + "\" and category = \"" + objSelectedGear.Category + "\"]");
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter, true);
frmPickGear.EnableStack = false;
frmPickGear.ShowArmorCapacityOnly = blnShowArmorCapacityOnly;
frmPickGear.CapacityDisplayStyle = objSelectedArmor.CapacityDisplayStyle;
try
{
if (treArmor.SelectedNode.Level > 1)
{
if (objXmlGear.InnerXml.Contains("<addoncategory>"))
{
string strCategories = "";
foreach (XmlNode objXmlCategory in objXmlGear.SelectNodes("addoncategory"))
strCategories += objXmlCategory.InnerText + ",";
// Remove the trailing comma.
strCategories = strCategories.Substring(0, strCategories.Length - 1);
frmPickGear.AddCategory(strCategories);
}
if (frmPickGear.AllowedCategories != "")
frmPickGear.AllowedCategories += objSelectedGear.Category + ",";
// If the Gear has a Capacity with no brackets (meaning it grants Capacity), show only Subsystems (those that conume Capacity).
if (!objSelectedGear.Capacity.Contains('['))
{
frmPickGear.MaximumCapacity = objSelectedGear.CapacityRemaining;
// Do not allow the user to add a new piece of Gear if its Capacity has been reached.
if (_objOptions.EnforceCapacity && objSelectedGear.CapacityRemaining < 0)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_CapacityReached"), LanguageManager.Instance.GetString("MessageTitle_CapacityReached"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
}
if (objSelectedGear.Category == "Commlink")
{
Commlink objCommlink = (Commlink)objSelectedGear;
frmPickGear.CommlinkResponse = objCommlink.DeviceRating;
}
}
else if (treArmor.SelectedNode.Level == 1)
{
// Open the Armor XML file and locate the selected Gear.
objXmlDocument = XmlManager.Instance.Load("armor.xml");
objXmlGear = objXmlDocument.SelectSingleNode("/chummer/armors/armor[name = \"" + objSelectedArmor.Name + "\"]");
if (objXmlGear.InnerXml.Contains("<addoncategory>"))
{
string strCategories = "";
foreach (XmlNode objXmlCategory in objXmlGear.SelectNodes("addoncategory"))
strCategories += objXmlCategory.InnerText + ",";
// Remove the trailing comma.
strCategories = strCategories.Substring(0, strCategories.Length - 1);
frmPickGear.AddCategory(strCategories);
}
}
}
catch
{
}
frmPickGear.ShowDialog(this);
// Make sure the dialogue window was not canceled.
if (frmPickGear.DialogResult == DialogResult.Cancel)
return false;
TreeNode objNode = new TreeNode();
// Open the Cyberware XML file and locate the selected piece.
objXmlDocument = XmlManager.Instance.Load("gear.xml");
//.........这里部分代码省略.........
示例12: tsVehicleAddGear_Click
private void tsVehicleAddGear_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;
// Locate the selected Vehicle.
Vehicle objSelectedVehicle = _objFunctions.FindVehicle(treVehicles.SelectedNode.Tag.ToString(), _objCharacter.Vehicles);
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter, true);
frmPickGear.ShowPositiveCapacityOnly = true;
frmPickGear.ShowDialog(this);
if (frmPickGear.DialogResult == DialogResult.Cancel)
return;
// Open the Gear XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[name = \"" + frmPickGear.SelectedGear + "\" and category = \"" + frmPickGear.SelectedCategory + "\"]");
// Create the new piece of Gear.
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
TreeNode objNode = new TreeNode();
Gear objGear = new Gear(_objCharacter);
switch (frmPickGear.SelectedCategory)
{
case "Commlink":
case "Commlink Upgrade":
Commlink objCommlink = new Commlink(_objCharacter);
objCommlink.Create(objXmlGear, _objCharacter, objNode, frmPickGear.SelectedRating, false);
objCommlink.Quantity = frmPickGear.SelectedQty;
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;
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;
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";
}
objGear.Quantity = frmPickGear.SelectedQty;
objNode.Text = objGear.DisplayName;
//.........这里部分代码省略.........
示例13: tsVehicleWeaponAccessoryAddGear_Click
private void tsVehicleWeaponAccessoryAddGear_Click(object sender, EventArgs e)
{
WeaponAccessory objAccessory = (WeaponAccessory)_objFunctions.FindEquipment(treVehicles.SelectedNode.Tag.ToString(), _objCharacter.Vehicles, typeof(WeaponAccessory));
// Make sure the Weapon Accessory is allowed to accept Gear.
if (objAccessory.AllowGear == null)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_WeaponGear"), LanguageManager.Instance.GetString("MessageTitle_CyberwareGear"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
frmSelectGear frmPickGear = new frmSelectGear(_objCharacter, true);
string strCategories = "";
foreach (XmlNode objXmlCategory in objAccessory.AllowGear)
strCategories += objXmlCategory.InnerText + ",";
frmPickGear.AllowedCategories = strCategories;
frmPickGear.ShowDialog(this);
if (frmPickGear.DialogResult == DialogResult.Cancel)
return;
TreeNode objNode = new TreeNode();
// Open the Gear XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml");
XmlNode objXmlGear = objXmlDocument.SelectSingleNode("/chummer/gears/gear[id = \"" + frmPickGear.SelectedGear + "\"]");
// Create the new piece of Gear.
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
Gear objNewGear = new Gear(_objCharacter);
switch (frmPickGear.SelectedCategory)
{
case "Commlink":
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);
//.........这里部分代码省略.........