diff --git a/Mods/vcmi/Content/config/english.json b/Mods/vcmi/Content/config/english.json index f70cad6f5..bf512827a 100644 --- a/Mods/vcmi/Content/config/english.json +++ b/Mods/vcmi/Content/config/english.json @@ -762,5 +762,7 @@ "core.bonus.MECHANICAL.name": "Mechanical", "core.bonus.MECHANICAL.description": "Immunity to many effects, repairable", "core.bonus.PRISM_HEX_ATTACK_BREATH.name": "Prism Breath", - "core.bonus.PRISM_HEX_ATTACK_BREATH.description": "Prism Breath Attack (three directions)" + "core.bonus.PRISM_HEX_ATTACK_BREATH.description": "Prism Breath Attack (three directions)", + "core.bonus.SPELL_SCHOOL_IMMUNITY.name": "${subtype.spellSchool} immunity", + "core.bonus.SPELL_SCHOOL_IMMUNITY.description": "Immune to ${subtype.spellSchool}" } diff --git a/Mods/vcmi/Content/config/german.json b/Mods/vcmi/Content/config/german.json index 25776beef..a256417c7 100644 --- a/Mods/vcmi/Content/config/german.json +++ b/Mods/vcmi/Content/config/german.json @@ -678,7 +678,7 @@ "core.bonus.JOUSTING.name": "Champion Charge", "core.bonus.JOUSTING.description": "+${val}% Schaden pro zurückgelegtem Feld", "core.bonus.KING.name": "König", - "core.bonus.KING.description": "Anfällig für SLAYER Level ${val} oder höher", + "core.bonus.KING.description": "Anfällig für Drachentöter Level ${val} oder höher", "core.bonus.LEVEL_SPELL_IMMUNITY.name": "Zauberimmunität 1-${val}", "core.bonus.LEVEL_SPELL_IMMUNITY.description": "Immun gegen Zaubersprüche der Stufen 1-${val}", "core.bonus.LIMITED_SHOOTING_RANGE.name" : "Begrenzte Schussweite", @@ -762,5 +762,7 @@ "core.bonus.MECHANICAL.name": "Mechanisch", "core.bonus.MECHANICAL.description": "Immunität gegen viele Effekte, reparierbar", "core.bonus.PRISM_HEX_ATTACK_BREATH.name": "Prisma-Atem", - "core.bonus.PRISM_HEX_ATTACK_BREATH.description": "Prisma-Atem-Angriff (drei Richtungen)" + "core.bonus.PRISM_HEX_ATTACK_BREATH.description": "Prisma-Atem-Angriff (drei Richtungen)", + "core.bonus.SPELL_SCHOOL_IMMUNITY.name": "${subtype.spellSchool}-Immunität", + "core.bonus.SPELL_SCHOOL_IMMUNITY.description": "Immunität gegen ${subtype.spellSchool}" } diff --git a/config/bonuses.json b/config/bonuses.json index 2765bd15e..59dd42633 100644 --- a/config/bonuses.json +++ b/config/bonuses.json @@ -532,6 +532,10 @@ } }, + "SPELL_SCHOOL_IMMUNITY": + { + }, + "SPELL_RESISTANCE_AURA": { "graphics": diff --git a/lib/CBonusTypeHandler.cpp b/lib/CBonusTypeHandler.cpp index 3c142b063..92bee1dd6 100644 --- a/lib/CBonusTypeHandler.cpp +++ b/lib/CBonusTypeHandler.cpp @@ -84,6 +84,13 @@ std::string CBonusTypeHandler::bonusToString(const std::shared_ptr & bonu if (text.find("${subtype.spell}") != std::string::npos && bonus->subtype.as().hasValue()) boost::algorithm::replace_all(text, "${subtype.spell}", bonus->subtype.as().toSpell()->getNameTranslated()); + if (text.find("${subtype.spellSchool}") != std::string::npos && bonus->subtype.as().hasValue()) + { + auto school = bonus->subtype.as(); + auto schoolName = VLC->generaltexth->zelp[school == SpellSchool::ANY ? 458 : 454 + school].first; + boost::algorithm::replace_all(text, "${subtype.spellSchool}", schoolName); + } + return text; }