Example #1
0
        public void testAddStatModSimple()
        {
            int          baseVal    = 10;
            StatModifier add        = new StatModifier(5, 1);
            StatModifier mult       = new StatModifier(0, 10);
            StatModifier statModSum = add.add(mult);

            Assert.That(statModSum.applyToBase(baseVal) == 150);
        }
    public CreatureStats getStatsWithMods(List <Pair <StatName, StatModifier> > statMods)
    {
        if (statMods == null || statMods.Count <= 0)
        {
            return(new CreatureStats(this));
        }

        StatModifier hpMod  = StatModifier.NEUTRAL_MOD;
        StatModifier strMod = StatModifier.NEUTRAL_MOD;
        StatModifier armMod = StatModifier.NEUTRAL_MOD;
        StatModifier spdMod = StatModifier.NEUTRAL_MOD;

        foreach (Pair <StatName, StatModifier> mod in statMods)
        {
            switch (mod.getFirst())
            {
            case StatName.HP:
                hpMod = hpMod.add(mod.getSecond());
                break;

            case StatName.STR:
                strMod = strMod.add(mod.getSecond());
                break;

            case StatName.ARM:
                armMod = armMod.add(mod.getSecond());
                break;

            case StatName.SPD:
                spdMod = spdMod.add(mod.getSecond());
                break;

            default:
                throw new System.Exception("CreatureStats was passed a stat name that it can't consider");
            }
        }

        return(new CreatureStats(hpMod.applyToBase(hp), strMod.applyToBase(str), armMod.applyToBase(arm), spdMod.applyToBase(spd)));
    }