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))); }