Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
 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));
 }
Ejemplo n.º 4
0
 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));
 }