public static Character RerollStat(this Character character, Func<string, Race> raceGetter, ECharacterStat stat)
        {
            var charStat = character.Stats[stat];

            var roll = (IntAddModdifier)charStat.Moddifiers[$@"{Race.GroupType}\StatRoll"];
            var race = raceGetter(character.Groups[Race.GroupType]);
            roll.Value = race.Stats[stat].Roll().PureSum;

            return character;
        }
Example #2
0
 protected override Dice GetDefaultStatValue(ECharacterStat stat)
     => new Dice(DefaultStatDice, DefaultStatDieSides, DefaultStatValue);
 public static void UpgradeStat(this Character character, ECharacterStat stat, int points) =>
     character.StatUpgrades[stat] += points;
 public static bool IsStatUpgradeAvaible(this Character character, ECharacterStat stat, int points) =>
     character.Stats[stat] + points <= Character.StatLimit &&
     character.SpendExp(character.GetStatCost(stat, points));
        public static int GetStatCost(this Character character, ECharacterStat stat, int points)
        {
            var curValue = character.Stats[stat];
            var price = character.StatCosts[stat];
            var sum = 0;

            while (points > 0)
            {
                var dif = 10 - curValue % 10;

                if (dif > points)
                    dif = points;

                var cost = (curValue / 10) * dif * price;

                sum += cost;
                points -= dif;
                curValue += dif;
            }

            return sum;
        }
 protected virtual Dice GetDefaultStatValue(ECharacterStat stat) => 0;
            public int this[ECharacterStat stat]
            {
                get
                {
                    IntAddModdifier mod;

                    _owner.Stats[stat].Moddifiers
                        .TryGetConverted("Upgrades", out mod, m => (IntAddModdifier)m);

                    return mod?.Value ?? 0;
                }
                set
                {
                    var prop = _owner.Stats[stat];
                    prop.Moddifiers["Upgrades"] = value;
                }
            }
 protected override Dice GetDefaultStatValue(ECharacterStat stat) => 0;