User:AVS/Secondary skill format
From VCMI Project Wiki
Questions
- Should default values (with no skill level) be configured too?
- [Todo] Discuss with whole team
- Can we avoid limitation of "at most one bonus if each type per skill level"? Current selector code for extract bonus from previous level:
Selector::type(type).And(Selector::sourceType(Bonus::SECONDARY_SKILL))
- Should commander skills be unified with hero skills?
- Should this be a part of HeroClass handler or separate handler?
Format
Skill format
{
"skillName":
{
//required for H3 skills, not allowed in mods (even if mod is overriding original skill) | number
//numeric id
"id": 42,
//required | string
//translatable name
"name": "Skill Name",
//optional | default = false| boolean
//this skill cant be learned in usual way, overrides chance to get
"special": true,
//optional| default 0| chance to learn by default for any Hero Class from any mod
"defaultChance": 3,
//optional | no default | string-numeric dictionary as json object
//class-specific chance (reveresed version of Hero Class attribute)
"chances":
{
"core:hero.cleric": 5
}
//required | object
"levels":{
"basic": { [Skill level format]},
"advanced": { [Skill level format]},
"expert": { [Skill level format]}
}
}
}
Skill level format
{
//optional| default auto-generated| string
//translatable name
"name": "Basic nothing",
//optional |no default| string-bonus dictionary as JSON object
//there are skills handled only by skill level
//and there might be skill that give bonus only on high level
// (allows overriding by name)
// !!! At most one bonus of each type
"bonuses":
{
"firstBonus":{[bonus format]},
"secondBonus":{[bonus format]}
}
},