本文整理汇总了C#中Chummer.MartialArt.Create方法的典型用法代码示例。如果您正苦于以下问题:C# MartialArt.Create方法的具体用法?C# MartialArt.Create怎么用?C# MartialArt.Create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Chummer.MartialArt
的用法示例。
在下文中一共展示了MartialArt.Create方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: cmdAddMartialArt_Click
private void cmdAddMartialArt_Click(object sender, EventArgs e)
{
frmSelectMartialArt frmPickMartialArt = new frmSelectMartialArt(_objCharacter);
frmPickMartialArt.ShowDialog(this);
if (frmPickMartialArt.DialogResult == DialogResult.Cancel)
return;
// Open the Martial Arts XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("martialarts.xml");
XmlNode objXmlArt = objXmlDocument.SelectSingleNode("/chummer/martialarts/martialart[name = \"" + frmPickMartialArt.SelectedMartialArt + "\"]");
TreeNode objNode = new TreeNode();
MartialArt objMartialArt = new MartialArt(_objCharacter);
objMartialArt.Create(objXmlArt, objNode, _objCharacter);
_objCharacter.MartialArts.Add(objMartialArt);
objNode.ContextMenuStrip = cmsMartialArts;
treMartialArts.Nodes[0].Nodes.Add(objNode);
treMartialArts.Nodes[0].Expand();
treMartialArts.SelectedNode = objNode;
treMartialArts.SortCustom();
CalculateBP();
CalculateNuyen();
_blnIsDirty = true;
UpdateWindowTitle();
}
示例2: 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;
//.........这里部分代码省略.........
示例3: ProcessBonus
private bool ProcessBonus(Improvement.ImprovementSource objImprovementSource, ref string strSourceName,
bool blnConcatSelectedValue,
int intRating, string strFriendlyName, XmlNode bonusNode, string strUnique)
{
Log.Info("Has Child Nodes");
// Add an Attribute.
if (bonusNode.LocalName == ("addattribute"))
{
Log.Info("addattribute");
if (bonusNode["name"].InnerText == "MAG")
{
_objCharacter.MAGEnabled = true;
Log.Info("Calling CreateImprovement for MAG");
CreateImprovement("MAG", objImprovementSource, strSourceName, Improvement.ImprovementType.Attribute,
"enableattribute", 0, 0);
}
else if (bonusNode["name"].InnerText == "RES")
{
_objCharacter.RESEnabled = true;
Log.Info("Calling CreateImprovement for RES");
CreateImprovement("RES", objImprovementSource, strSourceName, Improvement.ImprovementType.Attribute,
"enableattribute", 0, 0);
}
}
// Enable a special tab.
if (bonusNode.LocalName == ("enabletab"))
{
Log.Info("enabletab");
foreach (XmlNode objXmlEnable in bonusNode.ChildNodes)
{
switch (objXmlEnable.InnerText)
{
case "magician":
_objCharacter.MagicianEnabled = true;
Log.Info("magician");
CreateImprovement("Magician", objImprovementSource, strSourceName, Improvement.ImprovementType.SpecialTab,
"enabletab", 0, 0);
break;
case "adept":
_objCharacter.AdeptEnabled = true;
Log.Info("adept");
CreateImprovement("Adept", objImprovementSource, strSourceName, Improvement.ImprovementType.SpecialTab,
"enabletab",
0, 0);
break;
case "technomancer":
_objCharacter.TechnomancerEnabled = true;
Log.Info("technomancer");
CreateImprovement("Technomancer", objImprovementSource, strSourceName, Improvement.ImprovementType.SpecialTab,
"enabletab", 0, 0);
break;
case "critter":
_objCharacter.CritterEnabled = true;
Log.Info("critter");
CreateImprovement("Critter", objImprovementSource, strSourceName, Improvement.ImprovementType.SpecialTab,
"enabletab", 0, 0);
break;
case "initiation":
_objCharacter.InitiationEnabled = true;
Log.Info("initiation");
CreateImprovement("Initiation", objImprovementSource, strSourceName, Improvement.ImprovementType.SpecialTab,
"enabletab", 0, 0);
break;
}
}
}
// Select Restricted (select Restricted items for Fake Licenses).
if (bonusNode.LocalName == ("selectrestricted"))
{
Log.Info("selectrestricted");
frmSelectItem frmPickItem = new frmSelectItem();
frmPickItem.Character = _objCharacter;
if (_strForcedValue != string.Empty)
frmPickItem.ForceItem = _strForcedValue;
frmPickItem.AllowAutoSelect = false;
frmPickItem.ShowDialog();
// Make sure the dialogue window was not canceled.
if (frmPickItem.DialogResult == DialogResult.Cancel)
{
Rollback();
_strForcedValue = "";
_strLimitSelection = "";
return false;
}
_strSelectedValue = frmPickItem.SelectedItem;
if (blnConcatSelectedValue)
strSourceName += " (" + _strSelectedValue + ")";
Log.Info("_strSelectedValue = " + _strSelectedValue);
Log.Info("strSourceName = " + strSourceName);
// Create the Improvement.
Log.Info("Calling CreateImprovement");
CreateImprovement(frmPickItem.SelectedItem, objImprovementSource, strSourceName,
Improvement.ImprovementType.Restricted, strUnique);
}
//.........这里部分代码省略.........
示例4: cmdAddMartialArt_Click
private void cmdAddMartialArt_Click(object sender, EventArgs e)
{
// Make sure that adding a new Martial Art will not take the user over 35 BP for Positive Qualities.
if (!_objCharacter.IgnoreRules)
{
// Count the BP used by Positive Qualities.
int intBP = 0;
foreach (Quality objQuality in _objCharacter.Qualities)
{
if (objQuality.Type == QualityType.Positive && objQuality.ContributeToLimit)
intBP += objQuality.Cost;
}
// Include free Positive Quality Improvements.
intBP -= _objImprovementManager.ValueOf(Improvement.ImprovementType.FreePositiveQualities);
if (_objCharacter.BuildMethod == CharacterBuildMethod.Karma)
intBP *= _objOptions.KarmaQuality;
// Add 5 which is the cost for a new Martial Art at Rating 1.
if (_objCharacter.BuildMethod == CharacterBuildMethod.BP)
intBP += 5;
else
intBP += (5 * _objOptions.KarmaQuality);
foreach (MartialArt objCharacterMartialArt in _objCharacter.MartialArts)
{
if (_objCharacter.BuildMethod == CharacterBuildMethod.BP)
intBP += objCharacterMartialArt.Rating * 5;
else
intBP += objCharacterMartialArt.Rating * 5 * _objOptions.KarmaQuality;
}
if (_objCharacter.BuildMethod == CharacterBuildMethod.BP)
{
if (intBP > 35 && !_objCharacter.IgnoreRules)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_PositiveQualityLimit").Replace("{0}", "35 " + LanguageManager.Instance.GetString("String_BP")), LanguageManager.Instance.GetString("MessageTitle_PositiveQualityLimit"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
else
{
if (intBP > 70 && !_objCharacter.IgnoreRules)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_PositiveQualityLimit").Replace("{0}", "70 " + LanguageManager.Instance.GetString("String_Karma")), LanguageManager.Instance.GetString("MessageTitle_PositiveQualityLimit"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
}
frmSelectMartialArt frmPickMartialArt = new frmSelectMartialArt(_objCharacter);
frmPickMartialArt.ShowDialog(this);
if (frmPickMartialArt.DialogResult == DialogResult.Cancel)
return;
// Open the Martial Arts XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("martialarts.xml");
XmlNode objXmlArt = objXmlDocument.SelectSingleNode("/chummer/martialarts/martialart[name = \"" + frmPickMartialArt.SelectedMartialArt + "\"]");
TreeNode objNode = new TreeNode();
MartialArt objMartialArt = new MartialArt(_objCharacter);
objMartialArt.Create(objXmlArt, objNode, _objCharacter);
_objCharacter.MartialArts.Add(objMartialArt);
objNode.ContextMenuStrip = cmsMartialArts;
treMartialArts.Nodes[0].Nodes.Add(objNode);
treMartialArts.Nodes[0].Expand();
treMartialArts.SelectedNode = objNode;
_objFunctions.SortTree(treMartialArts);
CalculateBP();
_blnIsDirty = true;
UpdateWindowTitle();
}
示例5: cmdAddMartialArt_Click
private void cmdAddMartialArt_Click(object sender, EventArgs e)
{
int intKarmaCost = 7 * _objOptions.KarmaQuality;
if (intKarmaCost > _objCharacter.Karma)
{
MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughKarma"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughKarma"), MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
frmSelectMartialArt frmPickMartialArt = new frmSelectMartialArt(_objCharacter);
frmPickMartialArt.ShowDialog(this);
if (frmPickMartialArt.DialogResult == DialogResult.Cancel)
return;
// Open the Martial Arts XML file and locate the selected piece.
XmlDocument objXmlDocument = XmlManager.Instance.Load("martialarts.xml");
XmlNode objXmlArt = objXmlDocument.SelectSingleNode("/chummer/martialarts/martialart[name = \"" + frmPickMartialArt.SelectedMartialArt + "\"]");
TreeNode objNode = new TreeNode();
MartialArt objMartialArt = new MartialArt(_objCharacter);
objMartialArt.Create(objXmlArt, objNode, _objCharacter);
_objCharacter.MartialArts.Add(objMartialArt);
objNode.ContextMenuStrip = cmsMartialArts;
// Create the Expense Log Entry.
ExpenseLogEntry objExpense = new ExpenseLogEntry();
objExpense.Create(intKarmaCost * -1, LanguageManager.Instance.GetString("String_ExpenseLearnMartialArt") + " " + frmPickMartialArt.SelectedMartialArt, ExpenseType.Karma, DateTime.Now);
_objCharacter.ExpenseEntries.Add(objExpense);
_objCharacter.Karma -= intKarmaCost;
ExpenseUndo objUndo = new ExpenseUndo();
objUndo.CreateKarma(KarmaExpenseType.AddMartialArt, objMartialArt.Name);
objExpense.Undo = objUndo;
treMartialArts.Nodes[0].Nodes.Add(objNode);
treMartialArts.Nodes[0].Expand();
treMartialArts.SelectedNode = objNode;
_objFunctions.SortTree(treMartialArts);
UpdateCharacterInfo();
_blnIsDirty = true;
UpdateWindowTitle();
}
示例6: CreateImprovements
/// <summary>
/// Create all of the Improvements for an XML Node.
/// </summary>
/// <param name="objImprovementSource">Type of object that grants these Improvements.</param>
/// <param name="strSourceName">Name of the item that grants these Improvements.</param>
/// <param name="nodBonus">bonus XMLXode from the source data file.</param>
/// <param name="blnConcatSelectedValue">Whether or not any selected values should be concatinated with the SourceName string when storing.</param>
/// <param name="intRating">Selected Rating value that is used to replace the Rating string in an Improvement.</param>
/// <param name="strFriendlyName">Friendly name to show in any dialogue windows that ask for a value.</param>
public bool CreateImprovements(Improvement.ImprovementSource objImprovementSource, string strSourceName, XmlNode nodBonus, bool blnConcatSelectedValue = false, int intRating = 1, string strFriendlyName = "", object fCreate = null)
{
objFunctions.LogWrite(CommonFunctions.LogType.Entering, "Chummer.ImprovementManager", "CreateImprovements");
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "objImprovementSource = " + objImprovementSource.ToString());
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "strSourceName = " + strSourceName);
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "nodBonus = " + nodBonus.OuterXml.ToString());
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "blnConcatSelectedValue = " + blnConcatSelectedValue.ToString());
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "intRating = " + intRating.ToString());
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "strFriendlyName = " + strFriendlyName);
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "intRating = " + intRating.ToString());
bool blnSuccess = true;
try
{
if (nodBonus == null)
{
_strForcedValue = "";
_strLimitSelection = "";
objFunctions.LogWrite(CommonFunctions.LogType.Exiting, "Chummer.ImprovementManager", "CreateImprovements");
return true;
}
string strUnique = "";
if (nodBonus.Attributes["unique"] != null)
strUnique = nodBonus.Attributes["unique"].InnerText;
_strSelectedValue = "";
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "_strForcedValue = " + _strForcedValue);
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "_strLimitSelection = " + _strLimitSelection);
// If no friendly name was provided, use the one from SourceName.
if (strFriendlyName == "")
strFriendlyName = strSourceName;
if (nodBonus.HasChildNodes)
{
objFunctions.LogWrite(CommonFunctions.LogType.Message, "Chummer.ImprovementManager", "Has Child Nodes");
// Select Text (custom entry for things like Allergy).
if (NodeExists(nodBonus, "selecttext"))
{
objFunctions.LogWrite(CommonFunctions.LogType.Message, "Chummer.ImprovementManager", "selecttext");
if (_strForcedValue != "")
_strLimitSelection = _strForcedValue;
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "_strForcedValue = " + _strSelectedValue);
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "_strLimitSelection = " + _strLimitSelection);
// Display the Select Text window and record the value that was entered.
frmSelectText frmPickText = new frmSelectText();
frmPickText.Description = LanguageManager.Instance.GetString("String_Improvement_SelectText").Replace("{0}", strFriendlyName);
if (_strLimitSelection != "")
{
frmPickText.SelectedValue = _strLimitSelection;
frmPickText.Opacity = 0;
}
frmPickText.ShowDialog();
// Make sure the dialogue window was not canceled.
if (frmPickText.DialogResult == DialogResult.Cancel)
{
Rollback();
blnSuccess = false;
_strForcedValue = "";
_strLimitSelection = "";
objFunctions.LogWrite(CommonFunctions.LogType.Exiting, "Chummer.ImprovementManager", "CreateImprovements");
return false;
}
_strSelectedValue = frmPickText.SelectedValue;
if (blnConcatSelectedValue)
strSourceName += " (" + _strSelectedValue + ")";
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "_strSelectedValue = " + _strSelectedValue);
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "strSourceName = " + strSourceName);
// Create the Improvement.
objFunctions.LogWrite(CommonFunctions.LogType.Message, "Chummer.ImprovementManager", "Calling CreateImprovement");
CreateImprovement(frmPickText.SelectedValue, objImprovementSource, strSourceName, Improvement.ImprovementType.Text, strUnique);
}
}
// If there is no character object, don't attempt to add any Improvements.
if (_objCharacter == null)
{
objFunctions.LogWrite(CommonFunctions.LogType.Content, "Chummer.ImprovementManager", "_objCharacter = Null");
objFunctions.LogWrite(CommonFunctions.LogType.Exiting, "Chummer.ImprovementManager", "CreateImprovements");
return true;
//.........这里部分代码省略.........