diff --git a/docs/modders/Bonus_Format.md b/docs/modders/Bonus_Format.md index bd51188a7..0075bbdb9 100644 --- a/docs/modders/Bonus_Format.md +++ b/docs/modders/Bonus_Format.md @@ -6,29 +6,59 @@ All parameters but type are optional. ``` javascript { + // Type of the bonus. See Bonus Types for full list "type": "BONUS_TYPE", + + // Subtype of the bonus. Function depends on bonus type. "subtype": 0, + + // Value of the bonus. Function depends on bonus type. "val" : 0, + + // Describes how this bonus is accumulated with other bonuses of the same type "valueType": "VALUE_TYPE", + + // Additional info that bonus might need. Function depends on bonus type. "addInfo" : 0, // or [1, 2, ...] + // How long this bonus should be active until removal. + // May use multiple triggers, in which case first event will remove this bonus "duration" : "BONUS_DURATION", //or ["BONUS_DURATION1", "BONUS_DURATION2", ...]" + + // How long this bonus should remain, in days or battle turns (depending on bonus duration) "turns" : 0, + // TODO "targetSourceType" : "SOURCE_TYPE", + + // TODO "sourceType" : "SOURCE_TYPE", + + // TODO "sourceID" : 0, + + // TODO "effectRange" : "EFFECT_RANGE", + // TODO "limiters" : [ "PREDEFINED_LIMITER", optional_parameters (...), //whhich one is preferred? {"type" : LIMITER_TYPE, "parameters" : [1,2,3]} ], + // TODO "propagator" : ["PROPAGATOR_TYPE", optional_parameters (...)], + + // TODO "updater" : {Bonus Updater}, + + // TODO "propagationUpdater" : {Bonus Updater, but works during propagation}, + + // TODO "description" : "", + + // TODO "stacking" : "" } ``` @@ -47,44 +77,8 @@ All parameters but type are optional. ## 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: -``` 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" -``` - -- resource: -``` javascript - "wood", "mercury", "ore", "sulfur", "crystal", "gems", "gold", "mithril" -``` - -- hero. -- faction. -- spell. -- primarySkill -``` javascript - "attack", "defence", "spellpower", "knowledge" -``` - -- terrain: -``` javascript - "dirt", "sand", "grass", "snow", "swamp", "rough", "subterra", "lava", "water", "rock" -``` - -- spellSchool -```javascript -"any", "fire", "air", "water", "earth" -``` - +See [Game Identifiers](Game_Identifiers.md) for full list of available identifiers + ### Example ``` javascript diff --git a/docs/modders/Building_Bonuses.md b/docs/modders/Building_Bonuses.md index 59804a915..b52aac1ee 100644 --- a/docs/modders/Building_Bonuses.md +++ b/docs/modders/Building_Bonuses.md @@ -3,6 +3,8 @@ Work-in-progress page do describe all bonuses provided by town buildings for future configuration. +TODO: This page is outdated and may not represent VCMI 1.3 state + ## unique buildings Hardcoded functionalities, selectable but not configurable. In future diff --git a/lib/bonuses/Bonus.cpp b/lib/bonuses/Bonus.cpp index ff81c18eb..6ae6bacfc 100644 --- a/lib/bonuses/Bonus.cpp +++ b/lib/bonuses/Bonus.cpp @@ -177,8 +177,6 @@ JsonNode Bonus::toJsonNode() const root["subtype"] = subtypeToJson(type, subtype); if(additionalInfo != CAddInfo::NONE) root["addInfo"] = additionalInfoToJson(type, additionalInfo); - if(turnsRemain != 0) - root["turns"].Integer() = turnsRemain; if(source != BonusSource::OTHER) root["sourceType"].String() = vstd::findKey(bonusSourceMap, source); if(targetSourceType != BonusSource::OTHER)