Ejemplo n.º 1
0
        private void MainHandShoot(IEnemy enemy)
        {
            AttackSummary summary = DoMainHandShoot(enemy);

            UpdatePlayerStatus(summary);
            HandleMisfireWithReaction(MainHand);
        }
Ejemplo n.º 2
0
        private void Test_Shoot_Misfire()
        {
            GunStatus     status  = new GunStatus(always1, pepperbox);
            AttackSummary summary = null;

            Assert.DoesNotThrow(() => summary = status.Shoot(enemy, combatStats));

            Assert.AreEqual(GunFiringStatus.Misfired, status.Status);
            Assert.IsTrue(!status.CanFire());
            Assert.IsNotNull(summary);
        }
Ejemplo n.º 3
0
        private void OffHandShoot(IEnemy enemy)
        {
            OffhandAttackAvailable = false;
            AttackSummary summary = DoOffHandShoot(enemy);

            UpdatePlayerStatus(summary);

            if (UseMisfireReactionForOffHand())
            {
                HandleMisfireWithReaction(CurrentOffHand);
            }
        }
Ejemplo n.º 4
0
        private void UpdatePlayerStatus(AttackSummary summary)
        {
            NumberOfShots++;
            if (summary.Hit)
            {
                if (summary.Crit)
                {
                    NumberOfCrits++;
                }

                NumberOfHits++;
            }
        }
Ejemplo n.º 5
0
        private void Test_Shoot_Crit()
        {
            GunStatus status = new GunStatus(always20, pepperbox);

            status.Shoot(enemy, combatStats);
            AttackSummary summary = null;

            Assert.DoesNotThrow(() => summary = status.Shoot(enemy, combatStats));

            Assert.AreEqual(GunFiringStatus.Okay, status.Status);
            Assert.IsTrue(status.CanFire());

            Assert.IsNotNull(summary);
            Assert.AreEqual(23, summary.AttackRoll);
            Assert.AreEqual(42, summary.Damage);    //dmg kinda wonky because of always20
            Assert.IsTrue(summary.Hit);
            Assert.IsTrue(summary.Crit);
        }
Ejemplo n.º 6
0
        private void Test_Shoot_Miss()
        {
            GunStatus status = new GunStatus(always3, pepperbox);

            status.Shoot(enemy, combatStats);
            AttackSummary summary = null;

            Assert.DoesNotThrow(() => summary = status.Shoot(enemy, combatStats));

            Assert.AreEqual(GunFiringStatus.Okay, status.Status);
            Assert.IsTrue(status.CanFire());

            Assert.IsNotNull(summary);
            Assert.AreEqual(6, summary.AttackRoll);
            Assert.AreEqual(0, summary.Damage);
            Assert.IsTrue(!summary.Hit);
            Assert.IsTrue(!summary.Crit);
        }