mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-23 22:37:55 +02:00
Remove CCreatureHandler::loadBonuses
This commit is contained in:
@@ -462,56 +462,6 @@ void CCreatureHandler::loadCommanders()
|
||||
}
|
||||
}
|
||||
|
||||
void CCreatureHandler::loadBonuses(JsonNode & creature, std::string bonuses) const
|
||||
{
|
||||
auto makeBonusNode = [&](const std::string & type, double val = 0) -> JsonNode
|
||||
{
|
||||
JsonNode ret;
|
||||
ret["type"].String() = type;
|
||||
ret["val"].Float() = val;
|
||||
return ret;
|
||||
};
|
||||
|
||||
static const std::map<std::string, JsonNode> abilityMap =
|
||||
{
|
||||
{"FLYING_ARMY", makeBonusNode("FLYING")},
|
||||
{"SHOOTING_ARMY", makeBonusNode("SHOOTER")},
|
||||
{"SIEGE_WEAPON", makeBonusNode("SIEGE_WEAPON")},
|
||||
{"const_free_attack", makeBonusNode("BLOCKS_RETALIATION")},
|
||||
{"IS_UNDEAD", makeBonusNode("UNDEAD")},
|
||||
{"const_no_melee_penalty", makeBonusNode("NO_MELEE_PENALTY")},
|
||||
{"const_jousting", makeBonusNode("JOUSTING", 5)},
|
||||
{"KING_1", makeBonusNode("KING")}, // Slayer with no expertise
|
||||
{"KING_2", makeBonusNode("KING", 2)}, // Advanced Slayer or better
|
||||
{"KING_3", makeBonusNode("KING", 3)}, // Expert Slayer only
|
||||
{"const_no_wall_penalty", makeBonusNode("NO_WALL_PENALTY")},
|
||||
{"MULTI_HEADED", makeBonusNode("ATTACKS_ALL_ADJACENT")},
|
||||
{"IMMUNE_TO_MIND_SPELLS", makeBonusNode("MIND_IMMUNITY")},
|
||||
{"HAS_EXTENDED_ATTACK", makeBonusNode("TWO_HEX_ATTACK_BREATH")}
|
||||
};
|
||||
|
||||
auto hasAbility = [&](const std::string & name) -> bool
|
||||
{
|
||||
return boost::algorithm::find_first(bonuses, name);
|
||||
};
|
||||
|
||||
for(const auto & a : abilityMap)
|
||||
{
|
||||
if(hasAbility(a.first))
|
||||
creature["abilities"][a.first] = a.second;
|
||||
}
|
||||
if(hasAbility("DOUBLE_WIDE"))
|
||||
creature["doubleWide"].Bool() = true;
|
||||
|
||||
if(hasAbility("const_raises_morale"))
|
||||
{
|
||||
JsonNode node = makeBonusNode("MORALE");
|
||||
node["val"].Float() = 1;
|
||||
node["propagator"].String() = "HERO";
|
||||
creature["abilities"]["const_raises_morale"] = node;
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<JsonNode> CCreatureHandler::loadLegacyData()
|
||||
{
|
||||
size_t dataSize = VLC->engineSettings()->getInteger(EGameSettings::TEXTS_CREATURE);
|
||||
@@ -581,7 +531,7 @@ std::vector<JsonNode> CCreatureHandler::loadLegacyData()
|
||||
|
||||
// unused - ability text, not used since we no longer have original creature window
|
||||
parser.readString();
|
||||
loadBonuses(data, parser.readString()); //Attributes
|
||||
parser.readString(); // unused - abilities, not used since we load them all from json configs
|
||||
|
||||
h3Data.push_back(data);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user