示例#1
0
        public void CriticalSuccessAlwaysHits()
        {
            var random = new CriticalSuccessSource();

            MeleeHittingPolicy sut = new MeleeHittingPolicy(random);

            Assert.IsTrue(sut.DetermineHit(_source, _target));
        }
示例#2
0
        public void MeleeAttackUsesModifierFromStrength()
        {
            MeleeHittingPolicy sut = new MeleeHittingPolicy(new CriticalSuccessSource());

            _source.SetAttribute(Attributes.Strength, 14);

            Assert.AreEqual(2, sut.GetAttackBonus(_source));
        }
示例#3
0
        public void CriticalFailAlwaysMisses()
        {
            var random = new CriticalFailSource();

            MeleeHittingPolicy sut = new MeleeHittingPolicy(random);

            Assert.IsFalse(sut.DetermineHit(_source, _target));
        }
示例#4
0
        public void AttackMissesIfItsTotalIsLowerThanAc()
        {
            var random = new ControlledRandomSource {
                NextResult = 9
            };

            MeleeHittingPolicy sut = new MeleeHittingPolicy(random);

            Assert.IsFalse(sut.DetermineHit(_source, _target));
        }
示例#5
0
        public void AttackHitsIfItsTotalIsGreaterThanArmorClass()
        {
            var random = new ControlledRandomSource {
                NextResult = 11
            };

            MeleeHittingPolicy sut = new MeleeHittingPolicy(random);

            Assert.IsTrue(sut.DetermineHit(_source, _target));
        }
示例#6
0
        public void AttackMissesIfTotalIsGreaterThanAcButRollIsCriticalFail()
        {
            var random = new ControlledRandomSource {
                NextResult = 1
            };

            MeleeHittingPolicy sut = new MeleeHittingPolicy(random);

            _source.SetAttribute(Attributes.Strength, 30);

            Assert.IsFalse(sut.DetermineHit(_source, _target));
        }
示例#7
0
        public void AttackHitsIfItsTotalIsEqualToArmorClass()
        {
            var random = new ControlledRandomSource {
                NextResult = 9
            };

            MeleeHittingPolicy sut = new MeleeHittingPolicy(random);

            _source.SetAttribute(Attributes.Strength, 12);

            Assert.IsTrue(sut.DetermineHit(_source, _target));
        }