1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-23 22:37:55 +02:00

Merge pull request #5947 from Laserlicht/skill

Setting to increase selectable skills on levelup
This commit is contained in:
Ivan Savenko
2025-07-31 17:00:24 +03:00
committed by GitHub
7 changed files with 109 additions and 41 deletions

View File

@@ -1422,26 +1422,16 @@ std::vector<SecondarySkill> CGHeroInstance::getLevelupSkillCandidates(IGameRando
basicAndAdv.insert(elem.first);
none.erase(elem.first);
}
if (!basicAndAdv.empty())
int maxUpgradedSkills = cb->getSettings().getInteger(EGameSettings::LEVEL_UP_UPGRADED_SKILLS_AMOUNT);
while (skills.size() < maxUpgradedSkills && !basicAndAdv.empty())
{
skills.push_back(gameRandomizer.rollSecondarySkillForLevelup(this, basicAndAdv));
basicAndAdv.erase(skills.back());
}
if (!none.empty())
{
skills.push_back(gameRandomizer.rollSecondarySkillForLevelup(this, none));
none.erase(skills.back());
}
if (!basicAndAdv.empty() && skills.size() < 2)
{
skills.push_back(gameRandomizer.rollSecondarySkillForLevelup(this, basicAndAdv));
basicAndAdv.erase(skills.back());
}
if (!none.empty() && skills.size() < 2)
int maxTotalSkills = cb->getSettings().getInteger(EGameSettings::LEVEL_UP_TOTAL_SKILLS_AMOUNT);
while (skills.size() < maxTotalSkills && !none.empty())
{
skills.push_back(gameRandomizer.rollSecondarySkillForLevelup(this, none));
none.erase(skills.back());