/** * @param ProtectiveArmamentCode $protectiveArmamentCode * @param $armourer $armourer * @return int * @throws \DrdPlus\Skills\Physical\Exceptions\PhysicalSkillsDoNotKnowHowToUseThatArmament */ public function getMalusToFightNumberWithProtective(ProtectiveArmamentCode $protectiveArmamentCode, Armourer $armourer) { if ($protectiveArmamentCode instanceof ArmorCode) { /** @noinspection ExceptionsAnnotatingAndHandlingInspection */ return $armourer->getProtectiveArmamentRestrictionForSkill($protectiveArmamentCode, $this->determineCurrentSkillRank($this->getArmorWearing())); } if ($protectiveArmamentCode instanceof ShieldCode) { /** @noinspection ExceptionsAnnotatingAndHandlingInspection */ return $armourer->getProtectiveArmamentRestrictionForSkill($protectiveArmamentCode, $this->determineCurrentSkillRank($this->getShieldUsage())); } throw new Exceptions\PhysicalSkillsDoNotKnowHowToUseThatArmament("Given protective armament '{$protectiveArmamentCode}' is not usable by any physical skill"); }