public void AddSpecialization(string name) { if (!CharacterObject.CanAffordSpecialization) { return; } int price = CharacterObject.Options.KarmaSpecialization; //If data file contains {4} this crashes but... string upgradetext = //TODO WRONG $"{LanguageManager.Instance.GetString("String_ExpenseLearnSpecialization")} {DisplayName} ({name})"; SkillSpecialization nspec = new SkillSpecialization(name, false); ExpenseLogEntry entry = new ExpenseLogEntry(); entry.Create(price * -1, upgradetext, ExpenseType.Karma, DateTime.Now); entry.Undo = new ExpenseUndo().CreateKarma(KarmaExpenseType.AddSpecialization, nspec.InternalId); CharacterObject.ExpenseEntries.Add(entry); Specializations.Add(nspec); CharacterObject.Karma -= price; }
public void Upgrade() { if (!CanUpgradeCareer) { return; } int price = UpgradeKarmaCost(); int intTotalBaseRating = TotalBaseRating; string strSkillType = "String_ExpenseActiveSkill"; if (IsKnowledgeSkill) { strSkillType = "String_ExpenseKnowledgeSkill"; } //If data file contains {4} this crashes but... string upgradetext = $"{LanguageManager.GetString(strSkillType, GlobalOptions.Language)} {DisplayNameMethod(GlobalOptions.Language)} {intTotalBaseRating} 🡒 {(intTotalBaseRating + 1)}"; ExpenseLogEntry entry = new ExpenseLogEntry(CharacterObject); entry.Create(price * -1, upgradetext, ExpenseType.Karma, DateTime.Now); entry.Undo = new ExpenseUndo().CreateKarma(intTotalBaseRating == 0 ? KarmaExpenseType.AddSkill : KarmaExpenseType.ImproveSkill, InternalId); CharacterObject.ExpenseEntries.Add(entry); Karma += 1; CharacterObject.Karma -= price; }
public void Upgrade() { if (!CanUpgradeCareer) { return; } int price = UpgradeKarmaCost(); string strSkillType = "String_ExpenseActiveSkill"; if (IsKnowledgeSkill) { strSkillType = "String_ExpenseKnowledgeSkill"; } //If data file contains {4} this crashes but... string upgradetext = $"{LanguageManager.Instance.GetString(strSkillType)} {DisplayName} {LearnedRating} -> {(LearnedRating + 1)}"; ExpenseLogEntry entry = new ExpenseLogEntry(); entry.Create(price * -1, upgradetext, ExpenseType.Karma, DateTime.Now); entry.Undo = new ExpenseUndo().CreateKarma(LearnedRating == 0 ? KarmaExpenseType.AddSkill : KarmaExpenseType.ImproveSkill, Id.ToString()); CharacterObject.ExpenseEntries.Add(entry); Karma += 1; CharacterObject.Karma -= price; }
public async Task <ExpenseLogEntry> LogBill(Bill expense, string remarks = null) { var paymentToLog = expense.Payments .OrderByDescending(e => e.EntryDateTime) .FirstOrDefault(); if (paymentToLog == null) { return(null); } var logEntry = new ExpenseLogEntry { Payment = paymentToLog, ExpenseId = expense.Id }; if (remarks != null) { logEntry.Remarks = remarks; } _logger.LogInformation("A new bill payment was logged."); await _expenseRepositry.Create(logEntry); return(logEntry); }
public void Upgrade() { if (CharacterObject.Created) { if (!CareerIncrease) { return; } int intPrice = UpgradeKarmaCost(); //If data file contains {4} this crashes but... string strUpgradetext = $"{LanguageManager.GetString("String_ExpenseSkillGroup", GlobalOptions.Language)} {DisplayName} {Rating} 🡒 {(Rating + 1)}"; ExpenseLogEntry objEntry = new ExpenseLogEntry(_objCharacter); objEntry.Create(intPrice * -1, strUpgradetext, ExpenseType.Karma, DateTime.Now); objEntry.Undo = new ExpenseUndo().CreateKarma(Rating == 0 ? KarmaExpenseType.AddSkill : KarmaExpenseType.ImproveSkill, Name); CharacterObject.ExpenseEntries.AddWithSort(objEntry); CharacterObject.Karma -= intPrice; } Karma += 1; }
public void AddSpecialization(string name) { int price = IsKnowledgeSkill ? CharacterObject.Options.KarmaKnowledgeSpecialization : CharacterObject.Options.KarmaSpecialization; int intExtraSpecCost = 0; int intTotalBaseRating = TotalBaseRating; decimal decSpecCostMultiplier = 1.0m; foreach (Improvement objLoopImprovement in CharacterObject.Improvements) { if (objLoopImprovement.Minimum <= intTotalBaseRating && (string.IsNullOrEmpty(objLoopImprovement.Condition) || (objLoopImprovement.Condition == "career") == CharacterObject.Created || (objLoopImprovement.Condition == "create") != CharacterObject.Created) && objLoopImprovement.Enabled) { if (objLoopImprovement.ImprovedName == SkillCategory) { if (objLoopImprovement.ImproveType == Improvement.ImprovementType.SkillCategorySpecializationKarmaCost) { intExtraSpecCost += objLoopImprovement.Value; } else if (objLoopImprovement.ImproveType == Improvement.ImprovementType.SkillCategorySpecializationKarmaCostMultiplier) { decSpecCostMultiplier *= objLoopImprovement.Value / 100.0m; } } } } if (decSpecCostMultiplier != 1.0m) { price = decimal.ToInt32(decimal.Ceiling(price * decSpecCostMultiplier)); } price += intExtraSpecCost; //Spec if (price > CharacterObject.Karma) { return; } //If data file contains {4} this crashes but... string upgradetext = //TODO WRONG $"{LanguageManager.GetString("String_ExpenseLearnSpecialization", GlobalOptions.Language)} {DisplayNameMethod(GlobalOptions.Language)} ({name})"; SkillSpecialization nspec = new SkillSpecialization(name, false, this); ExpenseLogEntry entry = new ExpenseLogEntry(CharacterObject); entry.Create(price * -1, upgradetext, ExpenseType.Karma, DateTime.Now); entry.Undo = new ExpenseUndo().CreateKarma(KarmaExpenseType.AddSpecialization, nspec.InternalId); CharacterObject.ExpenseEntries.Add(entry); Specializations.Add(nspec); CharacterObject.Karma -= price; }
public async Task <ExpenseLogEntry> LogUnplannedExpense(UnplannedExpense expense) { var logEntry = new ExpenseLogEntry { Payment = expense.Payment, ExpenseId = expense.Id, Remarks = expense.Remarks }; _logger.LogInformation("An unexpected expense payment was logged."); await _expenseRepositry.Create(logEntry); return(logEntry); }
public async Task <ExpenseLogEntry> LogExpense(ExpenseLogEntry expense) { await _context.ExpenseEntries.AddAsync(expense); try { await _context.SaveChangesAsync(); _logger.LogInformation($"a new expense was logged"); return(expense); } catch (DbUpdateConcurrencyException ex) { _logger.LogError("Concurrency exception."); throw; } }
public void Upgrade() { if (!CareerIncrease) return; int price = UpgradeKarmaCost(); //If data file contains {4} this crashes but... string upgradetext = $"{LanguageManager.Instance.GetString("String_ExpenseSkillGroup")} {DisplayName} {Rating} -> {(Rating + 1)}"; ExpenseLogEntry entry = new ExpenseLogEntry(); entry.Create(price * -1, upgradetext, ExpenseType.Karma, DateTime.Now); entry.Undo = new ExpenseUndo().CreateKarma(Rating == 0 ? KarmaExpenseType.AddSkill : KarmaExpenseType.ImproveSkill, Name); Character.ExpenseEntries.Add(entry); Karma += 1; Character.Karma -= price; }
public async Task <ExpenseLogEntry> UpdateEntry(ExpenseLogEntry expense) { if (EntryExists(expense.Id)) { _context.Entry(expense).State = EntityState.Modified; try { await _context.SaveChangesAsync(); _logger.LogInformation($"An expense entry was updated."); return(expense); } catch (DbUpdateConcurrencyException ex) { _logger.LogError("Concurrency exception."); throw; } } else { return(null); } }
public void Upgrade() { if (!CanUpgradeCareer) return; int price = UpgradeKarmaCost(); //If data file contains {4} this crashes but... string upgradetext = $"{LanguageManager.Instance.GetString("String_ExpenseSkillGroup")} {DisplayName} {LearnedRating} -> {(LearnedRating + 1)}"; ExpenseLogEntry entry = new ExpenseLogEntry(); entry.Create(price * -1, upgradetext, ExpenseType.Karma, DateTime.Now); entry.Undo = new ExpenseUndo().CreateKarma(LearnedRating == 0 ? KarmaExpenseType.AddSkill : KarmaExpenseType.ImproveSkill, Id.ToString()); CharacterObject.ExpenseEntries.Add(entry); Karma += 1; CharacterObject.Karma -= price; }
public void AddSpecialization(string name) { if (!CharacterObject.CanAffordSpecialization) return; int price = CharacterObject.Options.KarmaSpecialization; //If data file contains {4} this crashes but... string upgradetext = //TODO WRONG $"{LanguageManager.Instance.GetString("String_ExpenseLearnSpecialization")} {DisplayName} ({name})"; SkillSpecialization nspec = new SkillSpecialization(name, false); ExpenseLogEntry entry = new ExpenseLogEntry(); entry.Create(price * -1, upgradetext, ExpenseType.Karma, DateTime.Now); entry.Undo = new ExpenseUndo().CreateKarma(KarmaExpenseType.AddSpecialization, nspec.InternalId); CharacterObject.ExpenseEntries.Add(entry); Specializations.Add(nspec); CharacterObject.Karma -= price; }