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
|
// if heroes are invitable in tavern
|
||||||
"tavernInvite" : false,
|
"tavernInvite" : false,
|
||||||
// minimai primary skills for heroes
|
// minimai primary skills for heroes
|
||||||
"minimalAttack": 0,
|
"minimalPrimarySkills": [ 0, 0, 1, 1]
|
||||||
"minimalDefence": 0,
|
|
||||||
"minimalKnowledge": 1,
|
|
||||||
"minimalSpellPower": 1
|
|
||||||
},
|
},
|
||||||
|
|
||||||
"towns":
|
"towns":
|
||||||
|
@ -75,10 +75,7 @@ void GameSettings::load(const JsonNode & input)
|
|||||||
{EGameSettings::HEROES_STARTING_STACKS_CHANCES, "heroes", "startingStackChances" },
|
{EGameSettings::HEROES_STARTING_STACKS_CHANCES, "heroes", "startingStackChances" },
|
||||||
{EGameSettings::HEROES_BACKPACK_CAP, "heroes", "backpackSize" },
|
{EGameSettings::HEROES_BACKPACK_CAP, "heroes", "backpackSize" },
|
||||||
{EGameSettings::HEROES_TAVERN_INVITE, "heroes", "tavernInvite" },
|
{EGameSettings::HEROES_TAVERN_INVITE, "heroes", "tavernInvite" },
|
||||||
{EGameSettings::HEROES_MINIMAL_ATTACK, "heroes", "minimalAttack" },
|
{EGameSettings::HEROES_MINIMAL_PRIMARY_SKILLS, "heroes", "minimalPrimarySkills" },
|
||||||
{EGameSettings::HEROES_MINIMAL_DEFENCE, "heroes", "minimalDefence" },
|
|
||||||
{EGameSettings::HEROES_MINIMAL_KNOWLEDGE, "heroes", "minimalKnowledge" },
|
|
||||||
{EGameSettings::HEROES_MINIMAL_SPELL_POWER, "heroes", "minimalSpellPower" },
|
|
||||||
{EGameSettings::MAP_FORMAT_RESTORATION_OF_ERATHIA, "mapFormat", "restorationOfErathia" },
|
{EGameSettings::MAP_FORMAT_RESTORATION_OF_ERATHIA, "mapFormat", "restorationOfErathia" },
|
||||||
{EGameSettings::MAP_FORMAT_ARMAGEDDONS_BLADE, "mapFormat", "armageddonsBlade" },
|
{EGameSettings::MAP_FORMAT_ARMAGEDDONS_BLADE, "mapFormat", "armageddonsBlade" },
|
||||||
{EGameSettings::MAP_FORMAT_SHADOW_OF_DEATH, "mapFormat", "shadowOfDeath" },
|
{EGameSettings::MAP_FORMAT_SHADOW_OF_DEATH, "mapFormat", "shadowOfDeath" },
|
||||||
|
@ -39,10 +39,7 @@ enum class EGameSettings
|
|||||||
HEROES_STARTING_STACKS_CHANCES,
|
HEROES_STARTING_STACKS_CHANCES,
|
||||||
HEROES_BACKPACK_CAP,
|
HEROES_BACKPACK_CAP,
|
||||||
HEROES_TAVERN_INVITE,
|
HEROES_TAVERN_INVITE,
|
||||||
HEROES_MINIMAL_ATTACK,
|
HEROES_MINIMAL_PRIMARY_SKILLS,
|
||||||
HEROES_MINIMAL_DEFENCE,
|
|
||||||
HEROES_MINIMAL_KNOWLEDGE,
|
|
||||||
HEROES_MINIMAL_SPELL_POWER,
|
|
||||||
MARKETS_BLACK_MARKET_RESTOCK_PERIOD,
|
MARKETS_BLACK_MARKET_RESTOCK_PERIOD,
|
||||||
BANKS_SHOW_GUARDS_COMPOSITION,
|
BANKS_SHOW_GUARDS_COMPOSITION,
|
||||||
MODULE_COMMANDERS,
|
MODULE_COMMANDERS,
|
||||||
|
@ -14,16 +14,21 @@
|
|||||||
|
|
||||||
VCMI_LIB_NAMESPACE_BEGIN
|
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)
|
int getPrimarySkillMinimum(PrimarySkill pSkill)
|
||||||
{
|
{
|
||||||
if (pSkill == PrimarySkill::ATTACK)
|
auto minialPSkills = VLC->settings()->getVector(EGameSettings::HEROES_MINIMAL_PRIMARY_SKILLS);
|
||||||
return VLC->settings()->getInteger(EGameSettings::HEROES_MINIMAL_ATTACK);
|
if(minialPSkills.size() != DEFAULT_MINIMAL_PSKILLS.size())
|
||||||
else if (pSkill == PrimarySkill::DEFENSE)
|
logGlobal->error("gameConfig.json: heroes/minimalPrimarySkills format error. need a vector with 4 elements.");
|
||||||
return VLC->settings()->getInteger(EGameSettings::HEROES_MINIMAL_DEFENCE);
|
int index = PSKILL_INDEX_MAP.at(pSkill);
|
||||||
else if (pSkill == PrimarySkill::SPELL_POWER)
|
return minialPSkills.size() > index ? minialPSkills[index] : DEFAULT_MINIMAL_PSKILLS[index];
|
||||||
return VLC->settings()->getInteger(EGameSettings::HEROES_MINIMAL_SPELL_POWER);
|
|
||||||
else
|
|
||||||
return VLC->settings()->getInteger(EGameSettings::HEROES_MINIMAL_KNOWLEDGE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VCMI_LIB_NAMESPACE_END
|
VCMI_LIB_NAMESPACE_END
|
Loading…
x
Reference in New Issue
Block a user