/** * @param RangedWeaponCode $rangedWeaponCode * @param Strength $currentStrength * @return int * @throws CanNotUseWeaponBecauseOfMissingStrength * @throws UnknownArmament * @throws UnknownBow */ private function getEncounterRangeMalusByStrength(RangedWeaponCode $rangedWeaponCode, Strength $currentStrength) { if (!$rangedWeaponCode->isBow() && !$rangedWeaponCode->isThrowingWeapon()) { return 0; } $missingStrength = $this->getMissingStrengthForArmament($rangedWeaponCode, $currentStrength, Size::getIt(0)); /** @noinspection ExceptionsAnnotatingAndHandlingInspection */ return $this->tables->getRangedWeaponStrengthSanctionsTable()->getEncounterRangeSanction($missingStrength); }