private void ValidateOffHandAttack(IEnemy enemy) { Assert.IsNotNull(enemy); Assert.IsTrue(BonusActionAvailable); Assert.IsTrue(OffhandAttackAvailable); Assert.IsTrue(CurrentOffHand.CanFire()); Assert.IsTrue(CurrentOffHand.HasShotLoaded()); }
private AttackSummary DoOffHandShoot(IEnemy enemy) { IModifier finalHitMod = (spellHitMod != null) ? PlayerBase.HitModifier.Add(spellHitMod) : PlayerBase.HitModifier; IModifier finalDmgMod = spellDmgMod ?? new Modifier(); //OH doesn't get dex mod CombatStats combatStats = new CombatStats(finalHitMod, finalDmgMod, PlayerBase.CritValue); return(CurrentOffHand.Shoot(enemy, combatStats)); }
private bool AttemptOhShoot(IEnemy enemy) { bool ret = false; if (CurrentOffHand.HasShotLoaded()) { OffHandShoot(enemy); ret = true; } NumberOfShotsLostToMisfire += DetermineAtksNotShotFromMisfire(CurrentOffHand, 1, 1); return(ret); }
private bool CurrentOffHandCanSwap() { return(CurrentOffHand != null && (!CurrentOffHand.HasShotLoaded() || !CurrentOffHand.CanFire())); }