mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-19 21:10:12 +02:00
use primary skill array
This commit is contained in:
parent
87eb026184
commit
79f5d260a4
@ -298,10 +298,7 @@
|
||||
// if heroes are invitable in tavern
|
||||
"tavernInvite" : false,
|
||||
// minimai primary skills for heroes
|
||||
"minimalAttack": 0,
|
||||
"minimalDefence": 0,
|
||||
"minimalKnowledge": 1,
|
||||
"minimalSpellPower": 1
|
||||
"minimalPrimarySkills": [ 0, 0, 1, 1]
|
||||
},
|
||||
|
||||
"towns":
|
||||
|
@ -75,10 +75,7 @@ void GameSettings::load(const JsonNode & input)
|
||||
{EGameSettings::HEROES_STARTING_STACKS_CHANCES, "heroes", "startingStackChances" },
|
||||
{EGameSettings::HEROES_BACKPACK_CAP, "heroes", "backpackSize" },
|
||||
{EGameSettings::HEROES_TAVERN_INVITE, "heroes", "tavernInvite" },
|
||||
{EGameSettings::HEROES_MINIMAL_ATTACK, "heroes", "minimalAttack" },
|
||||
{EGameSettings::HEROES_MINIMAL_DEFENCE, "heroes", "minimalDefence" },
|
||||
{EGameSettings::HEROES_MINIMAL_KNOWLEDGE, "heroes", "minimalKnowledge" },
|
||||
{EGameSettings::HEROES_MINIMAL_SPELL_POWER, "heroes", "minimalSpellPower" },
|
||||
{EGameSettings::HEROES_MINIMAL_PRIMARY_SKILLS, "heroes", "minimalPrimarySkills" },
|
||||
{EGameSettings::MAP_FORMAT_RESTORATION_OF_ERATHIA, "mapFormat", "restorationOfErathia" },
|
||||
{EGameSettings::MAP_FORMAT_ARMAGEDDONS_BLADE, "mapFormat", "armageddonsBlade" },
|
||||
{EGameSettings::MAP_FORMAT_SHADOW_OF_DEATH, "mapFormat", "shadowOfDeath" },
|
||||
|
@ -39,10 +39,7 @@ enum class EGameSettings
|
||||
HEROES_STARTING_STACKS_CHANCES,
|
||||
HEROES_BACKPACK_CAP,
|
||||
HEROES_TAVERN_INVITE,
|
||||
HEROES_MINIMAL_ATTACK,
|
||||
HEROES_MINIMAL_DEFENCE,
|
||||
HEROES_MINIMAL_KNOWLEDGE,
|
||||
HEROES_MINIMAL_SPELL_POWER,
|
||||
HEROES_MINIMAL_PRIMARY_SKILLS,
|
||||
MARKETS_BLACK_MARKET_RESTOCK_PERIOD,
|
||||
BANKS_SHOW_GUARDS_COMPOSITION,
|
||||
MODULE_COMMANDERS,
|
||||
|
@ -14,16 +14,21 @@
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
const std::vector<int> DEFAULT_MINIMAL_PSKILLS= {0, 0, 1, 1};
|
||||
const std::map<PrimarySkill, int> PSKILL_INDEX_MAP = {
|
||||
{PrimarySkill::ATTACK, 0},
|
||||
{PrimarySkill::DEFENSE, 1},
|
||||
{PrimarySkill::SPELL_POWER, 2},
|
||||
{PrimarySkill::KNOWLEDGE, 3}
|
||||
};
|
||||
|
||||
int getPrimarySkillMinimum(PrimarySkill pSkill)
|
||||
{
|
||||
if (pSkill == PrimarySkill::ATTACK)
|
||||
return VLC->settings()->getInteger(EGameSettings::HEROES_MINIMAL_ATTACK);
|
||||
else if (pSkill == PrimarySkill::DEFENSE)
|
||||
return VLC->settings()->getInteger(EGameSettings::HEROES_MINIMAL_DEFENCE);
|
||||
else if (pSkill == PrimarySkill::SPELL_POWER)
|
||||
return VLC->settings()->getInteger(EGameSettings::HEROES_MINIMAL_SPELL_POWER);
|
||||
else
|
||||
return VLC->settings()->getInteger(EGameSettings::HEROES_MINIMAL_KNOWLEDGE);
|
||||
auto minialPSkills = VLC->settings()->getVector(EGameSettings::HEROES_MINIMAL_PRIMARY_SKILLS);
|
||||
if(minialPSkills.size() != DEFAULT_MINIMAL_PSKILLS.size())
|
||||
logGlobal->error("gameConfig.json: heroes/minimalPrimarySkills format error. need a vector with 4 elements.");
|
||||
int index = PSKILL_INDEX_MAP.at(pSkill);
|
||||
return minialPSkills.size() > index ? minialPSkills[index] : DEFAULT_MINIMAL_PSKILLS[index];
|
||||
}
|
||||
|
||||
VCMI_LIB_NAMESPACE_END
|
Loading…
x
Reference in New Issue
Block a user