예제 #1
0
 /**
  * @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());
 }
예제 #2
0
 /**
  * @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}'");
 }