1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-19 21:10:12 +02:00

vcmi: translate wisdom

Make wisdom as separate bonus. It will be enough for now. But
next is should be done as IsLearnable for each spell.
This commit is contained in:
Konstantin 2023-02-27 13:57:21 +03:00
parent ddcff9dc36
commit 20a9332a3f
5 changed files with 10 additions and 8 deletions

View File

@ -50,6 +50,11 @@
"type" : "SPELL_DAMAGE", //Default spell damage "type" : "SPELL_DAMAGE", //Default spell damage
"val" : 100, "val" : 100,
"valueType" : "BASE_NUMBER" "valueType" : "BASE_NUMBER"
},
{
"type" : "MAX_LEARNABLE_SPELL_LEVEL", //Hero can always learn level 1 and 2 spells
"val" : 2,
"valueType" : "BASE_NUMBER"
} }
], ],
"heroBaseBonuses": "heroBaseBonuses":

View File

@ -198,8 +198,7 @@
"base" : { "base" : {
"effects" : { "effects" : {
"main" : { "main" : {
"subtype" : "skill.wisdom", "type" : "MAX_LEARNABLE_SPELL_LEVEL",
"type" : "SECONDARY_SKILL_PREMY",
"valueType" : "BASE_NUMBER" "valueType" : "BASE_NUMBER"
} }
} }

View File

@ -346,6 +346,7 @@ public:
BONUS_NAME(HERO_GRANTS_ATTACKS) /*If hero can grant additional attacks to creature, value is number of attacks, subtype is creatureID*/\ BONUS_NAME(HERO_GRANTS_ATTACKS) /*If hero can grant additional attacks to creature, value is number of attacks, subtype is creatureID*/\
BONUS_NAME(BONUS_DAMAGE_PERCENTAGE) /*If hero can grant conditional damage to creature, value is percentage, subtype is creatureID*/\ BONUS_NAME(BONUS_DAMAGE_PERCENTAGE) /*If hero can grant conditional damage to creature, value is percentage, subtype is creatureID*/\
BONUS_NAME(BONUS_DAMAGE_CHANCE) /*If hero can grant additional damage to creature, value is chance, subtype is creatureID*/\ BONUS_NAME(BONUS_DAMAGE_CHANCE) /*If hero can grant additional damage to creature, value is chance, subtype is creatureID*/\
BONUS_NAME(MAX_LEARNABLE_SPELL_LEVEL) /*This can work as wisdom before. val = max learnable spell level*/\
/* end of list */ /* end of list */

View File

@ -1078,7 +1078,7 @@ const std::set<SpellID> & CGHeroInstance::getSpellsInSpellbook() const
int CGHeroInstance::maxSpellLevel() const int CGHeroInstance::maxSpellLevel() const
{ {
return std::min(GameConstants::SPELL_LEVELS, 2 + valOfBonuses(Selector::typeSubtype(Bonus::SECONDARY_SKILL_PREMY, SecondarySkill::WISDOM))); return std::min(GameConstants::SPELL_LEVELS, valOfBonuses(Selector::type()(Bonus::MAX_LEARNABLE_SPELL_LEVEL)));
} }
void CGHeroInstance::deserializationFix() void CGHeroInstance::deserializationFix()

View File

@ -682,11 +682,8 @@ void CGameHandler::changeSecSkill(const CGHeroInstance * hero, SecondarySkill wh
sss.abs = abs; sss.abs = abs;
sendAndApply(&sss); sendAndApply(&sss);
if (which == SecondarySkill::WISDOM) if (hero->visitedTown)
{ giveSpells(hero->visitedTown, hero);
if (hero->visitedTown)
giveSpells(hero->visitedTown, hero);
}
} }
void CGameHandler::endBattle(int3 tile, const CGHeroInstance * heroAttacker, const CGHeroInstance * heroDefender) void CGameHandler::endBattle(int3 tile, const CGHeroInstance * heroAttacker, const CGHeroInstance * heroDefender)