public void GetAttackScore_ShouldCalculateCorrectScore( [FrozenMock] UnitModFactory unitModFactory, ICombatObject attacker, ICombatObject target, BattleFormulas battleFormulas) { attacker.AttackBonus(target).Returns(0.2m); attacker.Stats.Base.Weapon.Returns(WeaponType.Bow); target.Stats.Base.Armor.Returns(ArmorType.Machine); attacker.Type.Returns <ushort>(1); target.Type.Returns <ushort>(2); unitModFactory.GetModifier(1, 2).Returns(1.25); var score = battleFormulas.GetAttackScore(attacker, target, 1); score.Should().Be(1.5m); }
public BattleFormulas(UnitModFactory unitModFactory, UnitFactory unitFactory, IObjectTypeFactory objectTypeFactory) { this.unitModFactory = unitModFactory; this.unitFactory = unitFactory; this.objectTypeFactory = objectTypeFactory; }