本文整理汇总了C#中Armor.Create方法的典型用法代码示例。如果您正苦于以下问题:C# Armor.Create方法的具体用法?C# Armor.Create怎么用?C# Armor.Create使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Armor
的用法示例。
在下文中一共展示了Armor.Create方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateAllArmorTest
public void CreateAllArmorTest()
{
// Create a new Human character.
Character objCharacter = new Character();
objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602"));
TreeNode objNode = new TreeNode();
ContextMenuStrip cmsArmor = new ContextMenuStrip();
XmlDocument objXmlDocument = XmlManager.Instance.Load("armor.xml");
foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/armors/armor"))
{
Armor objArmor = new Armor(objCharacter);
objArmor.Create(objXmlNode, objNode, cmsArmor);
}
}
示例2: cmdAddArmor_Click
private void cmdAddArmor_Click(object sender, EventArgs e)
{
frmSelectArmor frmPickArmor = new frmSelectArmor(_objCharacter);
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[name = \"" + frmPickArmor.SelectedArmor + "\"]");
TreeNode objNode = new TreeNode();
Armor objArmor = new Armor(_objCharacter);
objArmor.Create(objXmlArmor, objNode, cmsArmorMod, frmPickArmor.Rating);
if (objArmor.InternalId == Guid.Empty.ToString())
return;
_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);
}
示例3: AddPACKSKit
/// <summary>
/// Add a PACKS Kit to the character.
/// </summary>
public void AddPACKSKit()
{
frmSelectPACKSKit frmPickPACKSKit = new frmSelectPACKSKit(_objCharacter);
frmPickPACKSKit.ShowDialog(this);
bool blnCreateChildren = true;
// If the form was canceled, don't do anything.
if (frmPickPACKSKit.DialogResult == DialogResult.Cancel)
return;
XmlDocument objXmlDocument = XmlManager.Instance.Load("packs.xml");
// Do not create child items for Gear if the chosen Kit is in the Custom category since these items will contain the exact plugins desired.
if (frmPickPACKSKit.SelectedCategory == "Custom")
blnCreateChildren = false;
XmlNode objXmlKit = objXmlDocument.SelectSingleNode("/chummer/packs/pack[name = \"" + frmPickPACKSKit.SelectedKit + "\" and category = \"" + frmPickPACKSKit.SelectedCategory + "\"]");
// Update Qualities.
if (objXmlKit["qualities"] != null)
{
XmlDocument objXmlQualityDocument = XmlManager.Instance.Load("qualities.xml");
// Positive Qualities.
foreach (XmlNode objXmlQuality in objXmlKit.SelectNodes("qualities/positive/quality"))
{
XmlNode objXmlQualityNode = objXmlQualityDocument.SelectSingleNode("/chummer/qualities/quality[name = \"" + objXmlQuality.InnerText + "\"]");
TreeNode objNode = new TreeNode();
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
Quality objQuality = new Quality(_objCharacter);
string strForceValue = "";
if (objXmlQuality.Attributes["select"] != null)
strForceValue = objXmlQuality.Attributes["select"].InnerText;
objQuality.Create(objXmlQualityNode, _objCharacter, QualitySource.Selected, objNode, objWeapons, objWeaponNodes, strForceValue);
_objCharacter.Qualities.Add(objQuality);
treQualities.Nodes[0].Nodes.Add(objNode);
treQualities.Nodes[0].Expand();
// Add any created Weapons to the character.
foreach (Weapon objWeapon in objWeapons)
_objCharacter.Weapons.Add(objWeapon);
// Create the Weapon Node if one exists.
foreach (TreeNode objWeaponNode in objWeaponNodes)
{
objWeaponNode.ContextMenuStrip = cmsWeapon;
treWeapons.Nodes[0].Nodes.Add(objWeaponNode);
treWeapons.Nodes[0].Expand();
}
}
// Negative Qualities.
foreach (XmlNode objXmlQuality in objXmlKit.SelectNodes("qualities/negative/quality"))
{
XmlNode objXmlQualityNode = objXmlQualityDocument.SelectSingleNode("/chummer/qualities/quality[name = \"" + objXmlQuality.InnerText + "\"]");
TreeNode objNode = new TreeNode();
List<Weapon> objWeapons = new List<Weapon>();
List<TreeNode> objWeaponNodes = new List<TreeNode>();
Quality objQuality = new Quality(_objCharacter);
string strForceValue = "";
if (objXmlQuality.Attributes["select"] != null)
strForceValue = objXmlQuality.Attributes["select"].InnerText;
objQuality.Create(objXmlQualityNode, _objCharacter, QualitySource.Selected, objNode, objWeapons, objWeaponNodes, strForceValue);
_objCharacter.Qualities.Add(objQuality);
treQualities.Nodes[1].Nodes.Add(objNode);
treQualities.Nodes[1].Expand();
// Add any created Weapons to the character.
foreach (Weapon objWeapon in objWeapons)
_objCharacter.Weapons.Add(objWeapon);
// Create the Weapon Node if one exists.
foreach (TreeNode objWeaponNode in objWeaponNodes)
{
objWeaponNode.ContextMenuStrip = cmsWeapon;
treWeapons.Nodes[0].Nodes.Add(objWeaponNode);
treWeapons.Nodes[0].Expand();
}
}
}
// Update Attributes.
if (objXmlKit["attributes"] != null)
{
// Reset all Attributes back to 1 so we don't go over any BP limits.
nudBOD.Value = nudBOD.Minimum;
nudAGI.Value = nudAGI.Minimum;
nudREA.Value = nudREA.Minimum;
//.........这里部分代码省略.........
示例4: 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[name = \"" + 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);
}
// Multiply the cost if applicable.
if (objArmor.TotalAvail.EndsWith(LanguageManager.Instance.GetString("String_AvailRestricted")) && _objOptions.MultiplyRestrictedCost)
intCost *= _objOptions.RestrictedCostMultiplier;
if (objArmor.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 (!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);
}
示例5: lstArmor_SelectedIndexChanged
private void lstArmor_SelectedIndexChanged(object sender, EventArgs e)
{
if (lstArmor.Text == "")
return;
// Get the information for the selected piece of Armor.
XmlNode objXmlArmor = _objXmlDocument.SelectSingleNode("/chummer/armors/armor[id = \"" + lstArmor.SelectedValue + "\"]");
// Create the Armor so we can show its Total Avail (some Armor includes Chemical Seal which adds +6 which wouldn't be factored in properly otherwise).
Armor objArmor = new Armor(_objCharacter);
TreeNode objNode = new TreeNode();
objArmor.Create(objXmlArmor, objNode, null, true, true, false);
lblArmor.Text = objArmor.TotalArmorValue.ToString();
lblAvail.Text = objArmor.TotalAvail;
// Check for a Variable Cost.
int intItemCost = 0;
if (objXmlArmor["cost"].InnerText.StartsWith("Variable"))
{
int intMin = 0;
int intMax = 0;
string strCost = objXmlArmor["cost"].InnerText.Replace("Variable(", string.Empty).Replace(")", string.Empty);
if (strCost.Contains("-"))
{
string[] strValues = strCost.Split('-');
intMin = Convert.ToInt32(strValues[0]);
intMax = Convert.ToInt32(strValues[1]);
}
else
intMin = Convert.ToInt32(strCost.Replace("+", string.Empty));
if (intMax == 0)
{
intMax = 1000000;
lblCost.Text = String.Format("{0:###,###,##0¥+}", intMin);
}
else
lblCost.Text = String.Format("{0:###,###,##0}", intMin) + "-" + String.Format("{0:###,###,##0¥}", intMax);
intItemCost = intMin;
}
else
{
double dblCost = Convert.ToDouble(objArmor.TotalCost, GlobalOptions.Instance.CultureInfo);
dblCost *= 1 + (Convert.ToDouble(nudMarkup.Value, GlobalOptions.Instance.CultureInfo) / 100.0);
lblCost.Text = String.Format("{0:###,###,##0¥}", dblCost);
intItemCost = Convert.ToInt32(dblCost);
}
lblCapacity.Text = objArmor.CalculatedCapacity;
if (chkFreeItem.Checked)
{
lblCost.Text = String.Format("{0:###,###,##0¥}", 0);
intItemCost = 0;
}
lblTest.Text = _objCharacter.AvailTest(intItemCost, lblAvail.Text);
string strBook = _objCharacter.Options.LanguageBookShort(objArmor.Source);
string strPage = objArmor.Page;
lblSource.Text = strBook + " " + strPage;
tipTooltip.SetToolTip(lblSource, _objCharacter.Options.LanguageBookLong(objArmor.Source) + " " + LanguageManager.Instance.GetString("String_Page") + " " + strPage);
}
示例6: tmrSearch_Tick
private void tmrSearch_Tick(object sender, EventArgs e)
{
tmrSearch.Stop();
tmrSearch.Enabled = false;
if (txtSearch.Text == "")
{
cboCategory_SelectedIndexChanged(sender, e);
return;
}
string strCategoryFilter = "";
foreach (object objListItem in cboCategory.Items)
{
ListItem objItem = (ListItem)objListItem;
if (objItem.Value != "")
strCategoryFilter += "category = \"" + objItem.Value + "\" or ";
}
// Treat everything as being uppercase so the search is case-insensitive.
string strSearch = "/chummer/armors/armor[(" + _objCharacter.Options.BookXPath() + ") and ((contains(translate(name,'abcdefghijklmnopqrstuvwxyzàáâãäåçèéêëìíîïñòóôõöùúûüýß','ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝß'), \"" + txtSearch.Text.ToUpper() + "\") and not(translate)) or contains(translate(translate,'abcdefghijklmnopqrstuvwxyzàáâãäåçèéêëìíîïñòóôõöùúûüýß','ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝß'), \"" + txtSearch.Text.ToUpper() + "\"))";
if (strCategoryFilter != "")
strSearch += " and (" + strCategoryFilter + ")";
// Remove the trailing " or )";
if (strSearch.EndsWith(" or )"))
{
strSearch = strSearch.Substring(0, strSearch.Length - 4) + ")";
}
strSearch += "]";
XmlNodeList objXmlArmorList = _objXmlDocument.SelectNodes(strSearch);
if (dgvArmor.Visible)
{
DataTable tabArmor = new DataTable("armor");
tabArmor.Columns.Add("ArmorName");
tabArmor.Columns.Add("Armor");
tabArmor.Columns["Armor"].DataType = typeof(Int32);
tabArmor.Columns.Add("Capacity");
tabArmor.Columns["Capacity"].DataType = typeof(Int32);
tabArmor.Columns.Add("Avail");
tabArmor.Columns.Add("Special");
tabArmor.Columns.Add("Source");
tabArmor.Columns.Add("Cost");
tabArmor.Columns["Cost"].DataType = typeof(Int32);
// Populate the Weapon list.
foreach (XmlNode objXmlArmor in objXmlArmorList)
{
TreeNode objNode = new TreeNode();
Armor objArmor = new Armor(_objCharacter);
objArmor.Create(objXmlArmor, objNode, null, true, true);
string strWeaponName = objArmor.Name;
int intArmor = objArmor.TotalArmor;
int intCapacity = Convert.ToInt32(objArmor.CalculatedCapacity);
string strAvail = objArmor.Avail;
string strAccessories = "";
foreach (ArmorMod objMod in objArmor.ArmorMods)
{
if (strAccessories.Length > 0)
strAccessories += "\n";
strAccessories += objMod.Name;
}
foreach (Gear objGear in objArmor.Gear)
{
if (strAccessories.Length > 0)
strAccessories += "\n";
strAccessories += objGear.Name;
}
string strSource = objArmor.Source + " " + objArmor.Page;
int intCost = objArmor.Cost;
tabArmor.Rows.Add(strWeaponName, intArmor, intCapacity, strAvail, strAccessories, strSource, intCost);
}
DataSet set = new DataSet("armor");
set.Tables.Add(tabArmor);
dgvArmor.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
dgvArmor.DataSource = set;
dgvArmor.DataMember = "armor";
}
else
{
List<ListItem> lstArmors = new List<ListItem>();
foreach (XmlNode objXmlArmor in objXmlArmorList)
{
ListItem objItem = new ListItem();
objItem.Value = objXmlArmor["name"].InnerText;
if (objXmlArmor["translate"] != null)
objItem.Name = objXmlArmor["translate"].InnerText;
else
objItem.Name = objXmlArmor["name"].InnerText;
try
{
objItem.Name += " [" + _lstCategory.Find(objFind => objFind.Value == objXmlArmor["category"].InnerText).Name + "]";
lstArmors.Add(objItem);
//.........这里部分代码省略.........
示例7: LoadGrid
private void LoadGrid()
{
DataTable tabArmor = new DataTable("armor");
tabArmor.Columns.Add("ArmorName");
tabArmor.Columns.Add("Armor");
tabArmor.Columns["Armor"].DataType = typeof(Int32);
tabArmor.Columns.Add("Capacity");
tabArmor.Columns["Capacity"].DataType = typeof(Int32);
tabArmor.Columns.Add("Avail");
tabArmor.Columns.Add("Special");
tabArmor.Columns.Add("Source");
tabArmor.Columns.Add("Cost");
tabArmor.Columns["Cost"].DataType = typeof(Int32);
// Populate the Weapon list.
XmlNodeList objXmlArmorList;
if (txtSearch.Text.Length > 1)
{
string strSearch = "/chummer/weapons/weapon[(" + _objCharacter.Options.BookXPath() + ") and category != \"Cyberware\" and category != \"Gear\" and ((contains(translate(name,'abcdefghijklmnopqrstuvwxyzàáâãäåçèéêëìíîïñòóôõöùúûüýß','ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝß'), \"" + txtSearch.Text.ToUpper() + "\") and not(translate)) or contains(translate(translate,'abcdefghijklmnopqrstuvwxyzàáâãäåçèéêëìíîïñòóôõöùúûüýß','ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝß'), \"" + txtSearch.Text.ToUpper() + "\"))]";
objXmlArmorList = _objXmlDocument.SelectNodes(strSearch);
}
else
{
// Populate the Armor list.
objXmlArmorList = _objXmlDocument.SelectNodes("/chummer/armors/armor[category = \"" + cboCategory.SelectedValue + "\" and (" + _objCharacter.Options.BookXPath() + ")]");
}
foreach (XmlNode objXmlArmor in objXmlArmorList)
{
TreeNode objNode = new TreeNode();
Armor objArmor = new Armor(_objCharacter);
objArmor.Create(objXmlArmor, objNode, null, true, true);
string strWeaponName = objArmor.Name;
int intArmor = objArmor.TotalArmor;
int intCapacity = Convert.ToInt32(objArmor.CalculatedCapacity);
string strAvail = objArmor.Avail;
string strAccessories = "";
foreach (ArmorMod objMod in objArmor.ArmorMods)
{
if (strAccessories.Length > 0)
strAccessories += "\n";
strAccessories += objMod.Name;
}
foreach (Gear objGear in objArmor.Gear)
{
if (strAccessories.Length > 0)
strAccessories += "\n";
strAccessories += objGear.Name;
}
string strSource = objArmor.Source + " " + objArmor.Page;
int intCost = objArmor.Cost;
tabArmor.Rows.Add(strWeaponName, intArmor, intCapacity, strAvail, strAccessories, strSource, intCost);
}
DataSet set = new DataSet("armor");
set.Tables.Add(tabArmor);
dgvArmor.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
dgvArmor.DataSource = set;
dgvArmor.DataMember = "armor";
}
示例8: TestArmor
private void TestArmor()
{
Character objCharacter = new Character();
XmlDocument objXmlDocument = XmlManager.Instance.Load("armor.xml");
pgbProgress.Minimum = 0;
pgbProgress.Value = 0;
pgbProgress.Maximum = objXmlDocument.SelectNodes("/chummer/armors/armor").Count;
pgbProgress.Maximum += objXmlDocument.SelectNodes("/chummer/mods/mod").Count;
// Armor.
foreach (XmlNode objXmlGear in objXmlDocument.SelectNodes("/chummer/armors/armor"))
{
pgbProgress.Value++;
Application.DoEvents();
try
{
TreeNode objTempNode = new TreeNode();
Armor objTemp = new Armor(objCharacter);
objTemp.Create(objXmlGear, objTempNode, null);
try
{
int objValue = objTemp.TotalCost;
}
catch
{
txtOutput.Text += objXmlGear["name"].InnerText + " failed TotalCost\n";
}
try
{
int objValue = objTemp.TotalBallistic;
}
catch
{
txtOutput.Text += objXmlGear["name"].InnerText + " failed TotalBallistic\n";
}
try
{
int objValue = objTemp.TotalImpact;
}
catch
{
txtOutput.Text += objXmlGear["name"].InnerText + " failed TotalImpact\n";
}
try
{
string objValue = objTemp.TotalAvail;
}
catch
{
txtOutput.Text += objXmlGear["name"].InnerText + " failed TotalAvail\n";
}
try
{
string objValue = objTemp.CalculatedCapacity;
}
catch
{
txtOutput.Text += objXmlGear["name"].InnerText + " failed CalculatedCapacity\n";
}
}
catch
{
txtOutput.Text += objXmlGear["name"].InnerText + " general failure\n";
}
}
// Armor Mods.
foreach (XmlNode objXmlGear in objXmlDocument.SelectNodes("/chummer/mods/mod"))
{
pgbProgress.Value++;
Application.DoEvents();
try
{
TreeNode objTempNode = new TreeNode();
ArmorMod objTemp = new ArmorMod(objCharacter);
List<Weapon> lstWeaopns = new List<Weapon>();
List<TreeNode> lstNodes = new List<TreeNode>();
objTemp.Create(objXmlGear, objTempNode, 1, lstWeaopns, lstNodes);
try
{
string objValue = objTemp.TotalAvail;
}
catch
{
txtOutput.Text += objXmlGear["name"].InnerText + " failed TotalAvail\n";
}
try
{
string objValue = objTemp.CalculatedCapacity;
}
catch
{
txtOutput.Text += objXmlGear["name"].InnerText + " failed CalculatedCapacity\n";
}
}
catch
{
txtOutput.Text += objXmlGear["name"].InnerText + " general failure\n";
}
}
//.........这里部分代码省略.........
示例9: UpdateArmorInfo
private void UpdateArmorInfo()
{
// Get the information for the selected piece of Armor.
XmlNode objXmlArmor = _objXmlDocument.SelectSingleNode("/chummer/armors/armor[name = \"" + lstArmor.SelectedValue + "\"]");
// Create the Armor so we can show its Total Avail (some Armor includes Chemical Seal which adds +6 which wouldn't be factored in properly otherwise).
Armor objArmor = new Armor(_objCharacter);
TreeNode objNode = new TreeNode();
objArmor.Create(objXmlArmor, objNode, null, 0, true);
// Check for a Variable Cost.
int intItemCost = 0;
if (objXmlArmor["cost"].InnerText.StartsWith("Variable"))
{
int intMin = 0;
int intMax = 0;
string strCost = objXmlArmor["cost"].InnerText.Replace("Variable(", string.Empty).Replace(")", string.Empty);
if (strCost.Contains("-"))
{
string[] strValues = strCost.Split('-');
intMin = Convert.ToInt32(strValues[0]);
intMax = Convert.ToInt32(strValues[1]);
}
else
intMin = Convert.ToInt32(strCost.Replace("+", string.Empty));
if (intMax == 0)
{
intMax = 1000000;
lblCost.Text = String.Format("{0:###,###,##0¥+}", intMin);
}
else
lblCost.Text = String.Format("{0:###,###,##0}", intMin) + "-" + String.Format("{0:###,###,##0¥}", intMax);
intItemCost = intMin;
}
else if (objXmlArmor["cost"].InnerText.Contains("Rating"))
{
XPathNavigator nav = _objXmlDocument.CreateNavigator();
XPathExpression xprCost = nav.Compile(objXmlArmor["cost"].InnerText.Replace("Rating", nudRating.Value.ToString()));
lblCost.Text = String.Format("{0:###,###,##0¥}", Convert.ToInt32((Convert.ToDouble(nav.Evaluate(xprCost), GlobalOptions.Instance.CultureInfo))));
intItemCost = Convert.ToInt32((Convert.ToDouble(nav.Evaluate(xprCost), GlobalOptions.Instance.CultureInfo)));
}
else
{
double dblCost = Convert.ToDouble(objXmlArmor["cost"].InnerText, GlobalOptions.Instance.CultureInfo);
dblCost *= 1 + (Convert.ToDouble(nudMarkup.Value, GlobalOptions.Instance.CultureInfo) / 100.0);
lblCost.Text = String.Format("{0:###,###,##0¥}", dblCost);
intItemCost = Convert.ToInt32(dblCost);
}
lblCapacity.Text = objXmlArmor["armorcapacity"].InnerText;
if (chkFreeItem.Checked)
{
lblCost.Text = String.Format("{0:###,###,##0¥}", 0);
intItemCost = 0;
}
lblTest.Text = _objCharacter.AvailTest(intItemCost, lblAvail.Text);
string strBook = _objCharacter.Options.LanguageBookShort(objXmlArmor["source"].InnerText);
string strPage = objXmlArmor["page"].InnerText;
if (objXmlArmor["altpage"] != null)
strPage = objXmlArmor["altpage"].InnerText;
lblSource.Text = strBook + " " + strPage;
tipTooltip.SetToolTip(lblSource, _objCharacter.Options.LanguageBookLong(objXmlArmor["source"].InnerText) + " " + LanguageManager.Instance.GetString("String_Page") + " " + strPage);
}
示例10: lstArmor_SelectedIndexChanged
private void lstArmor_SelectedIndexChanged(object sender, EventArgs e)
{
if (lstArmor.Text == "")
return;
// Get the information for the selected piece of Armor.
XmlNode objXmlArmor = _objXmlDocument.SelectSingleNode("/chummer/armors/armor[name = \"" + lstArmor.SelectedValue + "\"]");
// Create the Armor so we can show its Total Avail (some Armor includes Chemical Seal which adds +6 which wouldn't be factored in properly otherwise).
Armor objArmor = new Armor(_objCharacter);
TreeNode objNode = new TreeNode();
objArmor.Create(objXmlArmor, objNode, null, 0, true);
lblArmor.Text = objXmlArmor["name"].InnerText;
lblArmorValue.Text = objXmlArmor["armor"].InnerText;
lblAvail.Text = objArmor.TotalAvail;
if (objXmlArmor["rating"] != null)
{
lblRatingLabel.Visible = true;
nudRating.Visible = true;
nudRating.Enabled = true;
nudRating.Maximum = Convert.ToInt32(objXmlArmor["rating"].InnerText);
nudRating.Minimum = 1;
nudRating.Value = 1;
}
else
{
lblRatingLabel.Visible = false;
nudRating.Visible = false;
nudRating.Enabled = false;
nudRating.Minimum = 0;
nudRating.Value = 0;
}
UpdateArmorInfo();
}