User:AVS/Secondary skill format

From VCMI Project Wiki
Jump to: navigation, search

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]}				

	}
},