Difference between revisions of "Bonus Format"

From VCMI Project Wiki
Jump to: navigation, search
(Full format)
(Full format)
(28 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Enumertaed parameters are described in HeroBonus.h file.
+
Enumerative parameters are described in HeroBonus.h file.
 
===Short format===
 
===Short format===
<pre>
+
<syntaxhighlight lang="javascript">
 
{
 
{
 
["BONUS_TYPE", val, subtype, additionalInfo]
 
["BONUS_TYPE", val, subtype, additionalInfo]
 
}
 
}
</pre>
+
</syntaxhighlight>
 
===Full format===
 
===Full format===
 
All parameters but type are optional.
 
All parameters but type are optional.
<pre>
+
<syntaxhighlight lang="javascript">
 
{
 
{
"type": "BONUS_TYPE",
+
"type": "BONUS_TYPE",
"subtype: 0,
+
"subtype": 0,
"val" : 0,
+
"val" : 0,
"valueType", "VALUE_TYPE",
+
"valueType": "VALUE_TYPE",
"addInfo" : 0,
+
"addInfo" : 0, // or [1, 2, ...]
  
"duration" : "BONUS_DURATION",
+
"duration" : "BONUS_DURATION", //or ["BONUS_DURATION1", "BONUS_DURATION2", ...]"
"turns" : 0,
+
"turns" : 0,
  
"sourceType" : "SOURCE_TYPE",
+
"sourceType" : "SOURCE_TYPE",
"sourceID" : 0,
+
"sourceID" : 0,
"effectRange" : "EFFECT_RANGE",
+
"effectRange" : "EFFECT_RANGE",
"limiter" : ["LIMITER_TYPE", optional_parameters (...)]
+
"limiters" : [
"propagator" : ["PROPAGATOR_TYPE", optional_parameters (...)]
+
"PREDEFINED_LIMITER", optional_parameters (...), //whhich one is preferred?
"description" : ""
+
{"type" : LIMITER_TYPE, "parameters" : [1,2,3]}
 +
],
 +
"propagator" : ["PROPAGATOR_TYPE", optional_parameters (...)],
 +
"updater" : {Bonus Updater},
 +
"description" : ""
 
}
 
}
</pre>
+
</syntaxhighlight>
 +
 
 +
== Subtype resolution ==
 +
 
 +
All string identifiers of items can be used in "subtype" field. This allows cross-referencing between the mods and make config file more readable.
 +
=== Available prefixes ===
 +
* creature.
 +
* artifact.
 +
* skill.
 +
<syntaxhighlight lang="javascript">
 +
"pathfinding",  "archery",      "logistics",    "scouting",    "diplomacy",
 +
"navigation",  "leadership",  "wisdom",      "mysticism",    "luck",
 +
"ballistics",  "eagleEye",    "necromancy",  "estates",      "fireMagic",
 +
"airMagic",    "waterMagic",  "earthMagic",  "scholar",      "tactics",
 +
"artillery",    "learning",    "offence",      "armorer",      "intelligence",
 +
"sorcery",      "resistance",  "firstAid"
 +
</syntaxhighlight>
 +
* resource.
 +
Possible values:
 +
<syntaxhighlight lang="javascript">
 +
"wood", "mercury", "ore", "sulfur", "crystal", "gems", "gold", "mithril"
 +
</syntaxhighlight>
 +
* hero.
 +
* faction.
 +
* spell.
 +
* primSkill
 +
<syntaxhighlight lang="javascript">
 +
"attack", "defence", "spellpower", "knowledge"
 +
</syntaxhighlight>
 +
* terrain (since 0.99)
 +
<syntaxhighlight lang="javascript">
 +
"dirt", "sand", "grass", "snow", "swamp", "rough", "subterra", "lava", "water", "rock"
 +
</syntaxhighlight>
 +
 
 +
=== Example ===
 +
<syntaxhighlight lang="javascript">
 +
"bonus" :
 +
{
 +
"type" : "HATE",
 +
"subtype" : "creature.enchanter",
 +
"val" : 50
 +
}
 +
</syntaxhighlight>
 +
This bonus makes creature do 50% more damage to Enchanters.
 +
 
 +
{{Bonuses}}

Revision as of 01:33, 18 March 2018

Enumerative parameters are described in HeroBonus.h file.

Short format

{
["BONUS_TYPE", val, subtype, additionalInfo]
}

Full format

All parameters but type are optional.

{
	"type": 	"BONUS_TYPE",
	"subtype": 	0,
	"val" : 	0,
	"valueType": 	"VALUE_TYPE",
	"addInfo" : 	0, // or [1, 2, ...]

	"duration" : 	"BONUS_DURATION", //or ["BONUS_DURATION1", "BONUS_DURATION2", ...]"
	"turns" : 	0,

	"sourceType" : 	"SOURCE_TYPE",
	"sourceID" : 	0,
	"effectRange" : "EFFECT_RANGE",
	"limiters" : 	[
				"PREDEFINED_LIMITER", optional_parameters (...), //whhich one is preferred?
				{"type" : LIMITER_TYPE, "parameters" : [1,2,3]}
			],
	"propagator" : 	["PROPAGATOR_TYPE", optional_parameters (...)],
	"updater" :	{Bonus Updater},
	"description" : ""
}

Subtype resolution

All string identifiers of items can be used in "subtype" field. This allows cross-referencing between the mods and make config file more readable.

Available prefixes

  • creature.
  • artifact.
  • skill.
"pathfinding",  "archery",      "logistics",    "scouting",     "diplomacy",
		"navigation",   "leadership",   "wisdom",       "mysticism",    "luck",
		"ballistics",   "eagleEye",     "necromancy",   "estates",      "fireMagic",
		"airMagic",     "waterMagic",   "earthMagic",   "scholar",      "tactics",
		"artillery",    "learning",     "offence",      "armorer",      "intelligence",
		"sorcery",      "resistance",   "firstAid"
  • resource.

Possible values:

 "wood", "mercury", "ore", "sulfur", "crystal", "gems", "gold", "mithril"
  • hero.
  • faction.
  • spell.
  • primSkill
 "attack", "defence", "spellpower", "knowledge"
  • terrain (since 0.99)
 "dirt", "sand", "grass", "snow", "swamp", "rough", "subterra", "lava", "water", "rock"

Example

"bonus" :
{
	"type" : "HATE",
	"subtype" : "creature.enchanter",
	"val" : 50
}

This bonus makes creature do 50% more damage to Enchanters.

Bonus string constants

Additional links