/** * @param string $propertyCode * @param Race $race * @param GenderCode $genderCode * @param Tables $tables * @param ExceptionalityProperties $exceptionalityProperties * @param ProfessionLevels $professionLevels * @return int * @throws \DrdPlus\Races\Exceptions\UnknownPropertyCode */ private function calculateFirstLevelBaseProperty($propertyCode, Race $race, GenderCode $genderCode, Tables $tables, ExceptionalityProperties $exceptionalityProperties, ProfessionLevels $professionLevels) { return $race->getProperty($propertyCode, $genderCode, $tables) + $exceptionalityProperties->getProperty($propertyCode)->getValue() + $professionLevels->getFirstLevelPropertyModifier($propertyCode); }