private void cmdImproveInitiation_Click(object sender, EventArgs e) { if (_objCharacter.MAGEnabled) { // Make sure that the Initiate Grade is not attempting to go above the character's MAG Attribute. if (_objCharacter.InitiateGrade + 1 > _objCharacter.MAG.TotalValue) { MessageBox.Show(LanguageManager.Instance.GetString("Message_CannotIncreaseInitiateGrade"), LanguageManager.Instance.GetString("MessageTitle_CannotIncreaseInitiateGrade"), MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // Create the Initiate Grade object. InitiationGrade objGrade = new InitiationGrade(_objCharacter); objGrade.Create(_objCharacter.InitiateGrade + 1, _objCharacter.RESEnabled, chkInitiationGroup.Checked, chkInitiationOrdeal.Checked); _objCharacter.InitiationGrades.Add(objGrade); // Set the character's Initiate Grade. _objCharacter.InitiateGrade += 1; // Remove any existing Initiation Improvements. _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Initiation, "Initiation"); // Create the replacement Improvement. _objImprovementManager.CreateImprovement("MAG", Improvement.ImprovementSource.Initiation, "Initiation", Improvement.ImprovementType.Attribute, "", false, 0, 1, 0, _objCharacter.InitiateGrade); _objImprovementManager.Commit(); // Update any Metamagic Improvements the character might have. foreach (Metamagic objMetamagic in _objCharacter.Metamagics) { if (objMetamagic.Bonus != null) { // If the Bonus contains "Rating", remove the existing Improvement and create new ones. if (objMetamagic.Bonus.InnerXml.Contains("Rating")) { _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Metamagic, objMetamagic.InternalId); _objImprovementManager.CreateImprovements(Improvement.ImprovementSource.Metamagic, objMetamagic.InternalId, objMetamagic.Bonus, false, _objCharacter.InitiateGrade, objMetamagic.DisplayNameShort); } } } lblInitiateGrade.Text = _objCharacter.InitiateGrade.ToString(); } else if (_objCharacter.RESEnabled) { // Make sure that the Initiate Grade is not attempting to go above the character's RES Attribute. if (_objCharacter.SubmersionGrade + 1 > _objCharacter.RES.TotalValue) { MessageBox.Show(LanguageManager.Instance.GetString("Message_CannotIncreaseSubmersionGrade"), LanguageManager.Instance.GetString("MessageTitle_CannotIncreaseSubmersionGrade"), MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // Create the Initiate Grade object. InitiationGrade objGrade = new InitiationGrade(_objCharacter); objGrade.Create(_objCharacter.SubmersionGrade + 1, _objCharacter.RESEnabled, chkInitiationGroup.Checked, chkInitiationOrdeal.Checked); _objCharacter.InitiationGrades.Add(objGrade); // Set the character's Submersion Grade. _objCharacter.SubmersionGrade += 1; // Remove any existing Initiation Improvements. _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Submersion, "Submersion"); // Create the replacement Improvement. _objImprovementManager.CreateImprovement("RES", Improvement.ImprovementSource.Submersion, "Submersion", Improvement.ImprovementType.Attribute, "", false, 0, 1, 0, _objCharacter.SubmersionGrade); _objImprovementManager.Commit(); // Update any Echo Improvements the character might have. foreach (Metamagic objMetamagic in _objCharacter.Metamagics) { if (objMetamagic.Bonus != null) { // If the Bonus contains "Rating", remove the existing Improvement and create new ones. if (objMetamagic.Bonus.InnerXml.Contains("Rating")) { _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Echo, objMetamagic.InternalId); _objImprovementManager.CreateImprovements(Improvement.ImprovementSource.Echo, objMetamagic.InternalId, objMetamagic.Bonus, false, _objCharacter.SubmersionGrade, objMetamagic.DisplayNameShort); } } } lblInitiateGrade.Text = _objCharacter.SubmersionGrade.ToString(); } UpdateInitiationGradeList(); UpdateCharacterInfo(); _blnIsDirty = true; UpdateWindowTitle(); }
private void cmdAddMetamagic_Click(object sender, EventArgs e) { if (_objCharacter.MAGEnabled) { // Make sure that the Initiate Grade is not attempting to go above the character's MAG Attribute. if (_objCharacter.InitiateGrade + 1 > _objCharacter.MAG.TotalValue) { MessageBox.Show(LanguageManager.Instance.GetString("Message_CannotIncreaseInitiateGrade"), LanguageManager.Instance.GetString("MessageTitle_CannotIncreaseInitiateGrade"), MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // Make sure the character has enough Karma. double dblMultiplier = 1.0; if (chkInitiationGroup.Checked) dblMultiplier -= 0.1; if (chkInitiationOrdeal.Checked) dblMultiplier -= 0.1; if (chkInitiationSchooling.Checked) dblMultiplier -= 0.1; dblMultiplier = Math.Round(dblMultiplier, 2); int intAmount = Convert.ToInt32(Math.Floor(Convert.ToDouble((10 + ((_objCharacter.InitiateGrade) * _objOptions.KarmaInitiation)), GlobalOptions.Instance.CultureInfo) * dblMultiplier)); // Create the Initiate Grade object. InitiationGrade objGrade = new InitiationGrade(_objCharacter); objGrade.Create(_objCharacter.InitiateGrade + 1, _objCharacter.MAGEnabled, chkInitiationGroup.Checked, chkInitiationOrdeal.Checked, chkInitiationSchooling.Checked); _objCharacter.InitiationGrades.Add(objGrade); // Set the character's Initiate Grade. _objCharacter.InitiateGrade += 1; // Remove any existing Initiation Improvements. _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Initiation, "Initiation"); // Create the replacement Improvement. _objImprovementManager.CreateImprovement("MAG", Improvement.ImprovementSource.Initiation, "Initiation", Improvement.ImprovementType.Attribute, "", 0, 1, 0, _objCharacter.InitiateGrade); _objImprovementManager.Commit(); // Update any Metamagic Improvements the character might have. foreach (Metamagic objMetamagic in _objCharacter.Metamagics) { if (objMetamagic.Bonus != null) { // If the Bonus contains "Rating", remove the existing Improvement and create new ones. if (objMetamagic.Bonus.InnerXml.Contains("Rating")) { _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Metamagic, objMetamagic.InternalId); _objImprovementManager.CreateImprovements(Improvement.ImprovementSource.Metamagic, objMetamagic.InternalId, objMetamagic.Bonus, false, _objCharacter.InitiateGrade, objMetamagic.DisplayNameShort); } } } string strInitTip = LanguageManager.Instance.GetString("Tip_ImproveInitiateGrade").Replace("{0}", (_objCharacter.InitiateGrade + 1).ToString()).Replace("{1}", intAmount.ToString()); tipTooltip.SetToolTip(cmdAddMetamagic, strInitTip); } else if (_objCharacter.RESEnabled) { tsMetamagicAddArt.Visible = false; tsMetamagicAddEnchantment.Visible = false; tsMetamagicAddEnhancement.Visible = false; tsMetamagicAddRitual.Visible = false; tsMetamagicAddMetamagic.Text = LanguageManager.Instance.GetString("Button_AddEcho"); // Make sure that the Initiate Grade is not attempting to go above the character's RES Attribute. if (_objCharacter.SubmersionGrade + 1 > _objCharacter.RES.TotalValue) { MessageBox.Show(LanguageManager.Instance.GetString("Message_CannotIncreaseSubmersionGrade"), LanguageManager.Instance.GetString("MessageTitle_CannotIncreaseSubmersionGrade"), MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // Make sure the character has enough Karma. double dblMultiplier = 1.0; dblMultiplier = Math.Round(dblMultiplier, 2); int intKarmaExpense = Convert.ToInt32(Math.Floor(Convert.ToDouble((10 + ((_objCharacter.SubmersionGrade) * _objOptions.KarmaInitiation)), GlobalOptions.Instance.CultureInfo) * dblMultiplier)); // Create the Initiate Grade object. InitiationGrade objGrade = new InitiationGrade(_objCharacter); objGrade.Create(_objCharacter.SubmersionGrade + 1, _objCharacter.RESEnabled, chkInitiationGroup.Checked, chkInitiationOrdeal.Checked, chkInitiationSchooling.Checked); _objCharacter.InitiationGrades.Add(objGrade); // Set the character's Submersion Grade. _objCharacter.SubmersionGrade += 1; // Remove any existing Initiation Improvements. _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Submersion, "Submersion"); // Create the replacement Improvement. _objImprovementManager.CreateImprovement("RES", Improvement.ImprovementSource.Submersion, "Submersion", Improvement.ImprovementType.Attribute, "", 0, 1, 0, _objCharacter.SubmersionGrade); _objImprovementManager.Commit(); // Update any Echo Improvements the character might have. foreach (Metamagic objMetamagic in _objCharacter.Metamagics) { if (objMetamagic.Bonus != null) { // If the Bonus contains "Rating", remove the existing Improvement and create new ones. if (objMetamagic.Bonus.InnerXml.Contains("Rating")) { _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Echo, objMetamagic.InternalId); _objImprovementManager.CreateImprovements(Improvement.ImprovementSource.Echo, objMetamagic.InternalId, objMetamagic.Bonus, false, _objCharacter.SubmersionGrade, objMetamagic.DisplayNameShort); } } } int intAmount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble((10 + ((_objCharacter.SubmersionGrade + 1) * _objOptions.KarmaInitiation)), GlobalOptions.Instance.CultureInfo) * dblMultiplier)); string strInitTip = LanguageManager.Instance.GetString("Tip_ImproveSubmersionGrade").Replace("{0}", (_objCharacter.SubmersionGrade + 1).ToString()).Replace("{1}", intAmount.ToString()); tipTooltip.SetToolTip(cmdAddMetamagic, strInitTip); } UpdateInitiationGradeTree(); UpdateCharacterInfo(); _blnIsDirty = true; UpdateWindowTitle(); }
private void cmdAddMetamagic_Click(object sender, EventArgs e) { if (_objCharacter.MAGEnabled) { // Make sure that the Initiate Grade is not attempting to go above the character's MAG Attribute. if (_objCharacter.InitiateGrade + 1 > _objCharacter.MAG.TotalValue) { MessageBox.Show(LanguageManager.Instance.GetString("Message_CannotIncreaseInitiateGrade"), LanguageManager.Instance.GetString("MessageTitle_CannotIncreaseInitiateGrade"), MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // Make sure the character has enough Karma. double dblMultiplier = 1.0; if (chkInitiationGroup.Checked) dblMultiplier -= 0.1; if (chkInitiationOrdeal.Checked) dblMultiplier -= 0.1; if (chkInitiationSchooling.Checked) dblMultiplier -= 0.1; dblMultiplier = Math.Round(dblMultiplier, 2); int intKarmaExpense = Convert.ToInt32(Math.Ceiling(Convert.ToDouble((10 + ((_objCharacter.InitiateGrade + 1) * _objOptions.KarmaInitiation)), GlobalOptions.Instance.CultureInfo) * dblMultiplier)); if (intKarmaExpense > _objCharacter.Karma) { MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughKarma"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughKarma"), MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (chkInitiationSchooling.Checked && (10000 > _objCharacter.Nuyen)) { MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughNuyen"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughNuyen"), MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (chkInitiationSchooling.Checked) { if (!ConfirmKarmaExpense(LanguageManager.Instance.GetString("Message_ConfirmKarmaandNuyenExpense").Replace("{0}", LanguageManager.Instance.GetString("String_InitiateGrade")).Replace("{1}", (_objCharacter.InitiateGrade + 1).ToString()).Replace("{2}", intKarmaExpense.ToString()).Replace("{3}", (10000).ToString()))) return; } else { if (!ConfirmKarmaExpense(LanguageManager.Instance.GetString("Message_ConfirmKarmaExpense").Replace("{0}", LanguageManager.Instance.GetString("String_InitiateGrade")).Replace("{1}", (_objCharacter.InitiateGrade + 1).ToString()).Replace("{2}", intKarmaExpense.ToString()))) return; } // Create the Expense Log Entry. ExpenseLogEntry objExpense = new ExpenseLogEntry(); objExpense.Create(intKarmaExpense * -1, LanguageManager.Instance.GetString("String_ExpenseInitiateGrade") + " " + _objCharacter.InitiateGrade.ToString() + " -> " + (_objCharacter.InitiateGrade + 1).ToString(), ExpenseType.Karma, DateTime.Now); _objCharacter.ExpenseEntries.Add(objExpense); _objCharacter.Karma -= intKarmaExpense; // Create the Initiate Grade object. InitiationGrade objGrade = new InitiationGrade(_objCharacter); objGrade.Create(_objCharacter.InitiateGrade + 1, _objCharacter.RESEnabled, chkInitiationGroup.Checked, chkInitiationOrdeal.Checked, chkInitiationSchooling.Checked); _objCharacter.InitiationGrades.Add(objGrade); ExpenseUndo objUndo = new ExpenseUndo(); objUndo.CreateKarma(KarmaExpenseType.ImproveInitiateGrade, objGrade.InternalId); objExpense.Undo = objUndo; if (chkInitiationSchooling.Checked) { ExpenseLogEntry objNuyenExpense = new ExpenseLogEntry(); objNuyenExpense.Create(10000, LanguageManager.Instance.GetString("String_ExpenseInitiateGrade") + " " + _objCharacter.InitiateGrade.ToString() + " -> " + (_objCharacter.InitiateGrade + 1).ToString(), ExpenseType.Nuyen, DateTime.Now); _objCharacter.ExpenseEntries.Add(objNuyenExpense); _objCharacter.Nuyen -= 10000; ExpenseUndo objNuyenUndo = new ExpenseUndo(); objNuyenUndo.CreateNuyen(NuyenExpenseType.ImproveInitiateGrade, objGrade.InternalId, 10000); objNuyenExpense.Undo = objNuyenUndo; } // Set the character's Initiate Grade. _objCharacter.InitiateGrade += 1; // Remove any existing Initiation Improvements. _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Initiation, "Initiation"); // Create the replacement Improvement. _objImprovementManager.CreateImprovement("MAG", Improvement.ImprovementSource.Initiation, "Initiation", Improvement.ImprovementType.Attribute, "", 0, 1, 0, _objCharacter.InitiateGrade); _objImprovementManager.Commit(); // Update any Metamagic Improvements the character might have. foreach (Metamagic objMetamagic in _objCharacter.Metamagics) { if (objMetamagic.Bonus != null) { // If the Bonus contains "Rating", remove the existing Improvement and create new ones. if (objMetamagic.Bonus.InnerXml.Contains("Rating")) { _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Metamagic, objMetamagic.InternalId); _objImprovementManager.CreateImprovements(Improvement.ImprovementSource.Metamagic, objMetamagic.InternalId, objMetamagic.Bonus, false, _objCharacter.InitiateGrade, objMetamagic.DisplayNameShort); } } } int intAmount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble((10 + ((_objCharacter.InitiateGrade + 1) * _objOptions.KarmaInitiation)), GlobalOptions.Instance.CultureInfo) * dblMultiplier)); string strInitTip = LanguageManager.Instance.GetString("Tip_ImproveInitiateGrade").Replace("{0}", (_objCharacter.InitiateGrade + 1).ToString()).Replace("{1}", intAmount.ToString()); tipTooltip.SetToolTip(cmdAddMetamagic, strInitTip); } else if (_objCharacter.RESEnabled) { // Make sure that the Initiate Grade is not attempting to go above the character's RES Attribute. if (_objCharacter.SubmersionGrade + 1 > _objCharacter.RES.TotalValue) { MessageBox.Show(LanguageManager.Instance.GetString("Message_CannotIncreaseSubmersionGrade"), LanguageManager.Instance.GetString("MessageTitle_CannotIncreaseSubmersionGrade"), MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // Make sure the character has enough Karma. double dblMultiplier = 1.0; dblMultiplier = Math.Round(dblMultiplier, 2); int intKarmaExpense = Convert.ToInt32(Math.Ceiling(Convert.ToDouble((10 + ((_objCharacter.SubmersionGrade + 1) * _objOptions.KarmaInitiation)), GlobalOptions.Instance.CultureInfo) * dblMultiplier)); if (intKarmaExpense > _objCharacter.Karma) { MessageBox.Show(LanguageManager.Instance.GetString("Message_NotEnoughKarma"), LanguageManager.Instance.GetString("MessageTitle_NotEnoughKarma"), MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (!ConfirmKarmaExpense(LanguageManager.Instance.GetString("Message_ConfirmKarmaExpense").Replace("{0}", LanguageManager.Instance.GetString("String_SubmersionGrade")).Replace("{1}", (_objCharacter.SubmersionGrade + 1).ToString()).Replace("{2}", intKarmaExpense.ToString()))) return; // Create the Expense Log Entry. ExpenseLogEntry objExpense = new ExpenseLogEntry(); objExpense.Create(intKarmaExpense * -1, LanguageManager.Instance.GetString("String_ExpenseSubmersionGrade") + " " + _objCharacter.SubmersionGrade.ToString() + " -> " + (_objCharacter.SubmersionGrade + 1).ToString(), ExpenseType.Karma, DateTime.Now); _objCharacter.ExpenseEntries.Add(objExpense); _objCharacter.Karma -= intKarmaExpense; // Create the Initiate Grade object. InitiationGrade objGrade = new InitiationGrade(_objCharacter); objGrade.Create(_objCharacter.SubmersionGrade + 1, _objCharacter.RESEnabled, chkInitiationGroup.Checked, chkInitiationOrdeal.Checked, chkInitiationSchooling.Checked); _objCharacter.InitiationGrades.Add(objGrade); ExpenseUndo objUndo = new ExpenseUndo(); objUndo.CreateKarma(KarmaExpenseType.ImproveInitiateGrade, objGrade.InternalId); objExpense.Undo = objUndo; // Set the character's Submersion Grade. _objCharacter.SubmersionGrade += 1; // Remove any existing Initiation Improvements. _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Submersion, "Submersion"); // Create the replacement Improvement. _objImprovementManager.CreateImprovement("RES", Improvement.ImprovementSource.Submersion, "Submersion", Improvement.ImprovementType.Attribute, "", 0, 1, 0, _objCharacter.SubmersionGrade); _objImprovementManager.Commit(); // Update any Echo Improvements the character might have. foreach (Metamagic objMetamagic in _objCharacter.Metamagics) { if (objMetamagic.Bonus != null) { // If the Bonus contains "Rating", remove the existing Improvement and create new ones. if (objMetamagic.Bonus.InnerXml.Contains("Rating")) { _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.Echo, objMetamagic.InternalId); _objImprovementManager.CreateImprovements(Improvement.ImprovementSource.Echo, objMetamagic.InternalId, objMetamagic.Bonus, false, _objCharacter.SubmersionGrade, objMetamagic.DisplayNameShort); } } } int intAmount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble((10 + ((_objCharacter.SubmersionGrade + 1) * _objOptions.KarmaInitiation)), GlobalOptions.Instance.CultureInfo) * dblMultiplier)); string strInitTip = LanguageManager.Instance.GetString("Tip_ImproveSubmersionGrade").Replace("{0}", (_objCharacter.SubmersionGrade + 1).ToString()).Replace("{1}", intAmount.ToString()); tipTooltip.SetToolTip(cmdAddMetamagic, strInitTip); } UpdateInitiationGradeTree(); UpdateCharacterInfo(); _blnIsDirty = true; UpdateWindowTitle(); }