private void MainHandShoot(IEnemy enemy) { AttackSummary summary = DoMainHandShoot(enemy); UpdatePlayerStatus(summary); HandleMisfireWithReaction(MainHand); }
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); }
private void OffHandShoot(IEnemy enemy) { OffhandAttackAvailable = false; AttackSummary summary = DoOffHandShoot(enemy); UpdatePlayerStatus(summary); if (UseMisfireReactionForOffHand()) { HandleMisfireWithReaction(CurrentOffHand); } }
private void UpdatePlayerStatus(AttackSummary summary) { NumberOfShots++; if (summary.Hit) { if (summary.Crit) { NumberOfCrits++; } NumberOfHits++; } }
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); }
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); }