/**
  * @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");
 }