/** * @param RangedWeaponCode $rangedWeaponCode * @param Speed $speed * @return int * @throws CanNotUseWeaponBecauseOfMissingStrength */ private function getEncounterRangeBonusBySpeed(RangedWeaponCode $rangedWeaponCode, Speed $speed) { if (!$rangedWeaponCode->isThrowingWeapon()) { return 0; } return SumAndRound::half($speed->getValue()); }
/** * @param RangedWeaponCode $rangeWeaponCode * @return BowsTable|CrossbowsTable|ThrowingWeaponsTable * @throws UnknownRangedWeapon */ public function getRangedWeaponsTableByRangedWeaponCode(RangedWeaponCode $rangeWeaponCode) { if ($rangeWeaponCode->isBow()) { return $this->getBowsTable(); } if ($rangeWeaponCode->isCrossbow()) { return $this->getCrossbowsTable(); } if ($rangeWeaponCode->isThrowingWeapon()) { return $this->getThrowingWeaponsTable(); } throw new UnknownRangedWeapon("Unknown type of range weapon '{$rangeWeaponCode}'"); }