public StatEffect( StatName statName, string customDescription, byte level, FuncBonusAtLevel formulaValueBonus, FuncBonusAtLevel formulaPercentBonus, double valueBonus, double percentBonus) { this.StatName = statName; this.Level = level; this.Description = customDescription ?? statName.GetAttribute <DescriptionAttribute>()?.Description ?? throw new Exception("There is no [Description] attribute for stat " + statName); if (formulaValueBonus == null && formulaPercentBonus == null && valueBonus == 0 && percentBonus == 0) { throw new ArgumentNullException( $"Both provided formulas for stat effect \'{statName}\" are null and {nameof(valueBonus)} and {nameof(percentBonus)} are zero"); } this.FormulaValueBonus = formulaValueBonus; this.FormulaPercentBonus = formulaPercentBonus; this.ValueBonus = valueBonus; this.PercentBonus = percentBonus; }
public StatEffect( StatName statName, byte level, FuncBonusAtLevel formulaValueBonus, FuncBonusAtLevel formulaPercentBonus, double valueBonus, double percentBonus, bool displayTotalValue) { this.StatName = statName; this.Level = level; if (formulaValueBonus == null && formulaPercentBonus == null && valueBonus == 0 && percentBonus == 0) { throw new ArgumentNullException( $"Both provided formulas for stat effect \'{statName}\" are null and {nameof(valueBonus)} and {nameof(percentBonus)} are zero"); } this.FormulaValueBonus = formulaValueBonus; this.FormulaPercentBonus = formulaPercentBonus; this.ValueBonus = valueBonus; this.PercentBonus = percentBonus; this.DisplayTotalValue = displayTotalValue; }
public void AddStatEffect( StatName statName, byte level = 1, FuncBonusAtLevel formulaValueBonus = null, FuncBonusAtLevel formulaPercentBonus = null, double valueBonus = 0d, double percentBonus = 0d) { this.statEffects.Add( new StatEffect( statName, customDescription: null, level, formulaValueBonus, formulaPercentBonus, valueBonus, percentBonus)); }
public void AddStatEffect( StatName statName, byte level = 1, FuncBonusAtLevel formulaValueBonus = null, FuncBonusAtLevel formulaPercentBonus = null, double valueBonus = 0, double percentBonus = 0, bool displayTotalValue = false) { this.statEffects.Add( new StatEffect( statName, level, formulaValueBonus, formulaPercentBonus, valueBonus, percentBonus, displayTotalValue)); }