diff --git a/lib/mapObjects/CGHeroInstance.cpp b/lib/mapObjects/CGHeroInstance.cpp index 4785f1eb7..be7f0efda 100644 --- a/lib/mapObjects/CGHeroInstance.cpp +++ b/lib/mapObjects/CGHeroInstance.cpp @@ -1117,7 +1117,9 @@ std::vector CGHeroInstance::getLevelUpProposedSecondarySkills() std::vector obligatorySkills; //hero is offered magic school or wisdom if possible if (!skillsInfo.wisdomCounter) { - if (cb->isAllowed(2, SecondarySkill::WISDOM) && !getSecSkillLevel(SecondarySkill::WISDOM)) + if (cb->isAllowed(2, SecondarySkill::WISDOM) && + !getSecSkillLevel(SecondarySkill::WISDOM) && + type->heroClass->secSkillProbability[SecondarySkill::WISDOM] > 0) obligatorySkills.push_back(SecondarySkill::WISDOM); } if (!skillsInfo.magicSchoolCounter) @@ -1131,7 +1133,7 @@ std::vector CGHeroInstance::getLevelUpProposedSecondarySkills() for (auto skill : ss) { - if (cb->isAllowed(2, skill) && !getSecSkillLevel(skill)) //only schools hero doesn't know yet + if (cb->isAllowed(2, skill) && !getSecSkillLevel(skill) && type->heroClass->secSkillProbability[skill] > 0) //only schools hero doesn't know yet { obligatorySkills.push_back(skill); break; //only one @@ -1143,7 +1145,7 @@ std::vector CGHeroInstance::getLevelUpProposedSecondarySkills() //picking sec. skills for choice std::set basicAndAdv, expert, none; for(int i = 0; i < VLC->skillh->size(); i++) - if (cb->isAllowed(2,i)) + if (cb->isAllowed(2,i) && type->heroClass->secSkillProbability[i] > 0) none.insert(SecondarySkill(i)); for(auto & elem : secSkills)