https://wiki.vcmi.eu/api.php?action=feedcontributions&user=Warmonger&feedformat=atomVCMI Project Wiki - User contributions [en]2024-03-19T07:53:21ZUser contributionsMediaWiki 1.28.2https://wiki.vcmi.eu/index.php?title=Random_map_template&diff=3611Random map template2023-08-07T06:55:50Z<p>Warmonger: /* Zone format */</p>
<hr />
<div>Ideally, template format should be 100% compatible with OH3 format and bring additional improvements.<br />
==List of currently available templates==<br />
* Analogy<br />
* Upgrade<br />
* Golden Ring<br />
* Unfair Game<br />
* Jebus Cross<br />
==Template format==<br />
<syntaxhighlight lang="javascript"><br />
/// Unique template name<br />
"Triangle" : <br />
{<br />
//optional name - useful to have several template variations with same name (since 0.99)<br />
"name" : "Custom template name",<br />
"description" : "Brief description of template, recommended setting or rules".<br />
<br />
/// Minimal and maximal size of the map. Possible formats:<br />
/// Size code: s, m, l or xl for size with optional suffix "+u" for underground<br />
/// Numeric size, e.g. 120x120x1 (width x height x depth). Note that right now depth can only be 0 or 1<br />
"minSize" : "m",<br />
"maxSize" : "xl+u",<br />
<br />
/// Number of players that will be present on map (human or AI)<br />
"players" : "2-4",<br />
<br />
/// Number of AI-only players<br />
"cpu" : "2",<br />
<br />
///Optional parameter allowing to prohibit some water modes. All modes are allowed if parameter is not specified<br />
"allowedWaterContent" : ["none", "normal", "islands"]<br />
<br />
/// List of named zones, see below for format description<br />
"zones" :<br />
{<br />
"zoneA" : { ... },<br />
"zoneB" : { ... },<br />
"zoneC" : { ... }<br />
},<br />
"connections" :<br />
[<br />
{ "a" : "zoneA", "b" : "zoneB", "guard" : 5000, "road" : "false" },<br />
{ "a" : "zoneA", "b" : "zoneC", "guard" : 5000, "road" : "random" },<br />
{ "a" : "zoneB", "b" : "zoneC", "type" : "wide" }<br />
//"type" can be "guarded" (default), "wide", "fictive" or "repulsive"<br />
//"wide" connections have no border, or guard. "fictive" and "repulsive" connections are virtual -<br />
//they do not create actual path, but only attract or repulse zones, respectively<br />
]<br />
}<br />
</syntaxhighlight><br />
<br />
== Zone format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"type" : "playerStart", //"cpuStart" "treasure" "junction"<br />
"size" : 2, //relative size of zone<br />
"owner" : 1, //player owned this zone<br />
"playerTowns" : {<br />
"castles" : 1<br />
//"towns" : 1<br />
},<br />
"neutralTowns" : {<br />
//"castles" : 1<br />
"towns" : 1<br />
},<br />
"townsAreSameType" : true,<br />
"monsters" : "normal", //"weak" "strong", "none" - All treasures will be unguarded<br />
<br />
"terrainTypes" : [ "sand" ], //possible terrain types. All terrains will be available if not specified<br />
"bannedTerrains" : ["lava", "asphalt"] //optional<br />
<br />
"matchTerrainToTown" : false, //if true, terrain for this zone will match native terrain of player faction<br />
"minesLikeZone" : 1,<br />
"treasureLikeZone" : 1<br />
"terrainTypeLikeZone" : 3<br />
<br />
"allowedMonsters" : ["inferno", "necropolis"] //factions of monsters allowed on this zone<br />
"bannedMonsters" : ["fortress", "stronghold", "conflux"] //These monsers will never appear in the zone<br />
"allowedTowns" : ["castle", "tower", "rampart"] //towns allowed on this terrain<br />
"bannedTowns" : ["necropolis"] //towns will never spawn on this terrain<br />
<br />
"mines" : {<br />
"wood" : 1,<br />
"ore" : 1,<br />
},<br />
<br />
"treasure" : [<br />
{<br />
"min" : 2100,<br />
"max": 3000,<br />
"density" : 5<br />
}<br />
...<br />
]<br />
}<br />
</syntaxhighlight></div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Random_map_template&diff=3598Random map template2023-07-08T07:40:01Z<p>Warmonger: /* Template format */</p>
<hr />
<div>Ideally, template format should be 100% compatible with OH3 format and bring additional improvements.<br />
==List of currently available templates==<br />
* Analogy<br />
* Upgrade<br />
* Golden Ring<br />
* Unfair Game<br />
* Jebus Cross<br />
==Template format==<br />
<syntaxhighlight lang="javascript"><br />
/// Unique template name<br />
"Triangle" : <br />
{<br />
//optional name - useful to have several template variations with same name (since 0.99)<br />
"name" : "Custom template name",<br />
"description" : "Brief description of template, recommended setting or rules".<br />
<br />
/// Minimal and maximal size of the map. Possible formats:<br />
/// Size code: s, m, l or xl for size with optional suffix "+u" for underground<br />
/// Numeric size, e.g. 120x120x1 (width x height x depth). Note that right now depth can only be 0 or 1<br />
"minSize" : "m",<br />
"maxSize" : "xl+u",<br />
<br />
/// Number of players that will be present on map (human or AI)<br />
"players" : "2-4",<br />
<br />
/// Number of AI-only players<br />
"cpu" : "2",<br />
<br />
///Optional parameter allowing to prohibit some water modes. All modes are allowed if parameter is not specified<br />
"allowedWaterContent" : ["none", "normal", "islands"]<br />
<br />
/// List of named zones, see below for format description<br />
"zones" :<br />
{<br />
"zoneA" : { ... },<br />
"zoneB" : { ... },<br />
"zoneC" : { ... }<br />
},<br />
"connections" :<br />
[<br />
{ "a" : "zoneA", "b" : "zoneB", "guard" : 5000, "road" : "false" },<br />
{ "a" : "zoneA", "b" : "zoneC", "guard" : 5000, "road" : "random" },<br />
{ "a" : "zoneB", "b" : "zoneC", "type" : "wide" }<br />
//"type" can be "guarded" (default), "wide", "fictive" or "repulsive"<br />
//"wide" connections have no border, or guard. "fictive" and "repulsive" connections are virtual -<br />
//they do not create actual path, but only attract or repulse zones, respectively<br />
]<br />
}<br />
</syntaxhighlight><br />
<br />
== Zone format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"type" : "playerStart", //"cpuStart" "treasure" "junction"<br />
"size" : 2, //relative size of zone<br />
"owner" : 1, //player owned this zone<br />
"playerTowns" : {<br />
"castles" : 1<br />
//"towns" : 1<br />
},<br />
"neutralTowns" : {<br />
//"castles" : 1<br />
"towns" : 1<br />
},<br />
"townsAreSameType" : true,<br />
"monsters" : "normal", //"weak" "strong"<br />
<br />
"terrainTypes" : [ "sand" ], //possible terrain types. All terrains will be available if not specified<br />
"bannedTerrains" : ["lava", "asphalt"] //optional<br />
<br />
"matchTerrainToTown" : false, //if true, terrain for this zone will match native terrain of player faction<br />
"minesLikeZone" : 1,<br />
"treasureLikeZone" : 1<br />
"terrainTypeLikeZone" : 3<br />
<br />
"allowedMonsters" : ["inferno", "necropolis"] //factions of monsters allowed on this zone<br />
"bannedMonsters" : ["fortress", "stronghold", "conflux"] //These monsers will never appear in the zone<br />
"allowedTowns" : ["castle", "tower", "rampart"] //towns allowed on this terrain<br />
"bannedTowns" : ["necropolis"] //towns will never spawn on this terrain<br />
<br />
"mines" : {<br />
"wood" : 1,<br />
"ore" : 1,<br />
},<br />
<br />
"treasure" : [<br />
{<br />
"min" : 2100,<br />
"max": 3000,<br />
"density" : 5<br />
}<br />
...<br />
]<br />
}<br />
</syntaxhighlight></div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Random_map_template&diff=3597Random map template2023-07-08T07:39:45Z<p>Warmonger: /* Zone format */</p>
<hr />
<div>Ideally, template format should be 100% compatible with OH3 format and bring additional improvements.<br />
==List of currently available templates==<br />
* Analogy<br />
* Upgrade<br />
* Golden Ring<br />
* Unfair Game<br />
* Jebus Cross<br />
==Template format==<br />
<syntaxhighlight lang="javascript"><br />
/// Unique template name<br />
"Triangle" : <br />
{<br />
//optional name - useful to have several template variations with same name (since 0.99)<br />
"name" : "Custom template name",<br />
"description" : "Brief description of template, recommended setting or rules".<br />
<br />
/// Minimal and maximal size of the map. Possible formats:<br />
/// Size code: s, m, l or xl for size with optional suffix "+u" for underground<br />
/// Numeric size, e.g. 120x120x1 (width x height x depth). Note that right now depth can only be 0 or 1<br />
"minSize" : "m",<br />
"maxSize" : "xl+u",<br />
<br />
/// Number of players that will be present on map (human or AI)<br />
"players" : "2-4",<br />
<br />
/// Number of AI-only players<br />
"cpu" : "2",<br />
<br />
///Optional parameter allowing to prohibit some water modes. All modes are allowed if parameter is not specified<br />
"allowedWaterContent" : ["none", "normal", "islands"]<br />
<br />
/// List of named zones, see below for format description<br />
"zones" :<br />
{<br />
"zoneA" : { ... },<br />
"zoneB" : { ... },<br />
"zoneC" : { ... }<br />
},<br />
"connections" :<br />
[<br />
{ "a" : "zoneA", "b" : "zoneB", "guard" : 5000, "road" : "false" },<br />
{ "a" : "zoneA", "b" : "zoneC", "guard" : 5000, "road" : "random" },<br />
{ "a" : "zoneB", "b" : "zoneC", "type" : "wide" }<br />
//"type" can be "guarded" (default), "wide", "fictive" or "repulsive"<br />
//"wide" connections have no border, or guard. "fictive" and "repulsive" connections are virtual -<br />
//they do not create actual path, but only attract or repulse zones, respectively<br />
]<br />
}<br />
</syntaxhighlight><br />
<br />
== Zone format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"type" : "playerStart", //"cpuStart" "treasure" "junction"<br />
"size" : 2, //relative size of zone<br />
"owner" : 1, //player owned this zone<br />
"playerTowns" : {<br />
"castles" : 1<br />
//"towns" : 1<br />
},<br />
"neutralTowns" : {<br />
//"castles" : 1<br />
"towns" : 1<br />
},<br />
"townsAreSameType" : true,<br />
"monsters" : "normal", //"weak" "strong"<br />
<br />
"terrainTypes" : [ "sand" ], //possible terrain types. All terrains will be available if not specified<br />
"bannedTerrains" : ["lava", "asphalt"] //optional<br />
<br />
"matchTerrainToTown" : false, //if true, terrain for this zone will match native terrain of player faction<br />
"minesLikeZone" : 1,<br />
"treasureLikeZone" : 1<br />
"terrainTypeLikeZone" : 3<br />
<br />
"allowedMonsters" : ["inferno", "necropolis"] //factions of monsters allowed on this zone<br />
"bannedMonsters" : ["fortress", "stronghold", "conflux"] //These monsers will never appear in the zone<br />
"allowedTowns" : ["castle", "tower", "rampart"] //towns allowed on this terrain<br />
"bannedTowns" : ["necropolis"] //towns will never spawn on this terrain<br />
<br />
"mines" : {<br />
"wood" : 1,<br />
"ore" : 1,<br />
},<br />
<br />
"treasure" : [<br />
{<br />
"min" : 2100,<br />
"max": 3000,<br />
"density" : 5<br />
}<br />
...<br />
]<br />
}<br />
</syntaxhighlight></div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Random_map_template&diff=3596Random map template2023-07-08T07:36:06Z<p>Warmonger: /* Zone format */</p>
<hr />
<div>Ideally, template format should be 100% compatible with OH3 format and bring additional improvements.<br />
==List of currently available templates==<br />
* Analogy<br />
* Upgrade<br />
* Golden Ring<br />
* Unfair Game<br />
* Jebus Cross<br />
==Template format==<br />
<syntaxhighlight lang="javascript"><br />
/// Unique template name<br />
"Triangle" : <br />
{<br />
//optional name - useful to have several template variations with same name (since 0.99)<br />
"name" : "Custom template name",<br />
"description" : "Brief description of template, recommended setting or rules".<br />
<br />
/// Minimal and maximal size of the map. Possible formats:<br />
/// Size code: s, m, l or xl for size with optional suffix "+u" for underground<br />
/// Numeric size, e.g. 120x120x1 (width x height x depth). Note that right now depth can only be 0 or 1<br />
"minSize" : "m",<br />
"maxSize" : "xl+u",<br />
<br />
/// Number of players that will be present on map (human or AI)<br />
"players" : "2-4",<br />
<br />
/// Number of AI-only players<br />
"cpu" : "2",<br />
<br />
///Optional parameter allowing to prohibit some water modes. All modes are allowed if parameter is not specified<br />
"allowedWaterContent" : ["none", "normal", "islands"]<br />
<br />
/// List of named zones, see below for format description<br />
"zones" :<br />
{<br />
"zoneA" : { ... },<br />
"zoneB" : { ... },<br />
"zoneC" : { ... }<br />
},<br />
"connections" :<br />
[<br />
{ "a" : "zoneA", "b" : "zoneB", "guard" : 5000, "road" : "false" },<br />
{ "a" : "zoneA", "b" : "zoneC", "guard" : 5000, "road" : "random" },<br />
{ "a" : "zoneB", "b" : "zoneC", "type" : "wide" }<br />
//"type" can be "guarded" (default), "wide", "fictive" or "repulsive"<br />
//"wide" connections have no border, or guard. "fictive" and "repulsive" connections are virtual -<br />
//they do not create actual path, but only attract or repulse zones, respectively<br />
]<br />
}<br />
</syntaxhighlight><br />
<br />
== Zone format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"type" : "playerStart", //"cpuStart" "treasure" "junction"<br />
"size" : 2, //relative size of zone<br />
"owner" : 1, //player owned this zone<br />
"playerTowns" : {<br />
"castles" : 1<br />
//"towns" : 1<br />
},<br />
"neutralTowns" : {<br />
//"castles" : 1<br />
"towns" : 1<br />
},<br />
"townsAreSameType" : true,<br />
"monsters" : "normal", //"weak" "strong"<br />
<br />
"terrainTypes" : [ "sand" ], //possible terrain types. All terrains will be available if not specified<br />
"bannedTerrains" : ["lava", "asphalt"] //optional<br />
<br />
"matchTerrainToTown" : false, //if true, terrain for this zone will match native terrain of player faction<br />
"minesLikeZone" : 1,<br />
"treasureLikeZone" : 1<br />
"terrainTypeLikeZone" : 3<br />
<br />
"allowedMonsters" : ["inferno", "necropolis"] //factions of monsters allowed on this zone<br />
"bannedMonsters" : ["fortress", "stronghold", "conflux"] //These monsers will never appear in the zone<br />
"allowedTowns" : ["castle", "tower", "rampart"] //towns allowed on this terrain<br />
"bannedTowns" : ["necropolis"] //towns will never spawn on this terrain<br />
<br />
"mines" : {<br />
"wood" : 1,<br />
"ore" : 1,<br />
},<br />
<br />
"treasure" : [<br />
{<br />
"min" : 2100,<br />
"max": 3000,<br />
"density" : 5<br />
}<br />
...<br />
]<br />
}<br />
</syntaxhighlight></div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Random_map_template&diff=3595Random map template2023-07-08T07:33:09Z<p>Warmonger: /* Template format */</p>
<hr />
<div>Ideally, template format should be 100% compatible with OH3 format and bring additional improvements.<br />
==List of currently available templates==<br />
* Analogy<br />
* Upgrade<br />
* Golden Ring<br />
* Unfair Game<br />
* Jebus Cross<br />
==Template format==<br />
<syntaxhighlight lang="javascript"><br />
/// Unique template name<br />
"Triangle" : <br />
{<br />
//optional name - useful to have several template variations with same name (since 0.99)<br />
"name" : "Custom template name",<br />
"description" : "Brief description of template, recommended setting or rules".<br />
<br />
/// Minimal and maximal size of the map. Possible formats:<br />
/// Size code: s, m, l or xl for size with optional suffix "+u" for underground<br />
/// Numeric size, e.g. 120x120x1 (width x height x depth). Note that right now depth can only be 0 or 1<br />
"minSize" : "m",<br />
"maxSize" : "xl+u",<br />
<br />
/// Number of players that will be present on map (human or AI)<br />
"players" : "2-4",<br />
<br />
/// Number of AI-only players<br />
"cpu" : "2",<br />
<br />
///Optional parameter allowing to prohibit some water modes. All modes are allowed if parameter is not specified<br />
"allowedWaterContent" : ["none", "normal", "islands"]<br />
<br />
/// List of named zones, see below for format description<br />
"zones" :<br />
{<br />
"zoneA" : { ... },<br />
"zoneB" : { ... },<br />
"zoneC" : { ... }<br />
},<br />
"connections" :<br />
[<br />
{ "a" : "zoneA", "b" : "zoneB", "guard" : 5000, "road" : "false" },<br />
{ "a" : "zoneA", "b" : "zoneC", "guard" : 5000, "road" : "random" },<br />
{ "a" : "zoneB", "b" : "zoneC", "type" : "wide" }<br />
//"type" can be "guarded" (default), "wide", "fictive" or "repulsive"<br />
//"wide" connections have no border, or guard. "fictive" and "repulsive" connections are virtual -<br />
//they do not create actual path, but only attract or repulse zones, respectively<br />
]<br />
}<br />
</syntaxhighlight><br />
<br />
== Zone format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"type" : "playerStart", //"cpuStart" "treasure" "junction"<br />
"size" : 2, //relative size of zone<br />
"owner" : 1, //player owned this zone<br />
"playerTowns" : {<br />
"castles" : 1<br />
//"towns" : 1<br />
},<br />
"neutralTowns" : {<br />
//"castles" : 1<br />
"towns" : 1<br />
},<br />
"townsAreSameType" : true,<br />
"monsters" : "normal", //"weak" "strong"<br />
<br />
"terrainTypes" : [ "sand" ], //possible terrain types. All terrains will be available if not specified<br />
"matchTerrainToTown" : false, //if true, terrain for this zone will match native terrain of player faction<br />
<br />
"minesLikeZone" : 1,<br />
"treasureLikeZone" : 1<br />
"terrainTypeLikeZone" : 3<br />
<br />
"allowedMonsters" : ["inferno", "necropolis"] //factions of monsters allowed on this zone<br />
"allowedTowns" : ["castle", "tower", "rampart"] //towns allowed on this terrain<br />
<br />
"mines" : {<br />
"wood" : 1,<br />
"ore" : 1,<br />
},<br />
<br />
"treasure" : [<br />
{<br />
"min" : 2100,<br />
"max": 3000,<br />
"density" : 5<br />
}<br />
...<br />
]<br />
}<br />
</syntaxhighlight></div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Random_map_template&diff=3594Random map template2023-07-08T07:31:58Z<p>Warmonger: /* Template format */</p>
<hr />
<div>Ideally, template format should be 100% compatible with OH3 format and bring additional improvements.<br />
==List of currently available templates==<br />
* Analogy<br />
* Upgrade<br />
* Golden Ring<br />
* Unfair Game<br />
* Jebus Cross<br />
==Template format==<br />
<syntaxhighlight lang="javascript"><br />
/// Unique template name<br />
"Triangle" : <br />
{<br />
//optional name - useful to have several template variations with same name (since 0.99)<br />
"name" : "Custom template name",<br />
<br />
/// Minimal and maximal size of the map. Possible formats:<br />
/// Size code: s, m, l or xl for size with optional suffix "+u" for underground<br />
/// Numeric size, e.g. 120x120x1 (width x height x depth). Note that right now depth can only be 0 or 1<br />
"minSize" : "m",<br />
"maxSize" : "xl+u",<br />
<br />
/// Number of players that will be present on map (human or AI)<br />
"players" : "2-4",<br />
<br />
/// Number of AI-only players<br />
"cpu" : "2",<br />
<br />
///Optional parameter allowing to prohibit some water modes. All modes are allowed if parameter is not specified<br />
"allowedWaterContent" : ["none", "normal", "islands"]<br />
<br />
/// List of named zones, see below for format description<br />
"zones" :<br />
{<br />
"zoneA" : { ... },<br />
"zoneB" : { ... },<br />
"zoneC" : { ... }<br />
},<br />
"connections" :<br />
[<br />
{ "a" : "zoneA", "b" : "zoneB", "guard" : 5000, "road" : "false" },<br />
{ "a" : "zoneA", "b" : "zoneC", "guard" : 5000, "road" : "random" },<br />
{ "a" : "zoneB", "b" : "zoneC", "type" : "wide" }<br />
//"type" can be "guarded" (default), "wide", "fictive" or "repulsive"<br />
//"wide" connections have no border, or guard. "fictive" and "repulsive" connections are virtual -<br />
//they do not create actual path, but only attract or repulse zones, respectively<br />
]<br />
}<br />
</syntaxhighlight><br />
<br />
== Zone format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"type" : "playerStart", //"cpuStart" "treasure" "junction"<br />
"size" : 2, //relative size of zone<br />
"owner" : 1, //player owned this zone<br />
"playerTowns" : {<br />
"castles" : 1<br />
//"towns" : 1<br />
},<br />
"neutralTowns" : {<br />
//"castles" : 1<br />
"towns" : 1<br />
},<br />
"townsAreSameType" : true,<br />
"monsters" : "normal", //"weak" "strong"<br />
<br />
"terrainTypes" : [ "sand" ], //possible terrain types. All terrains will be available if not specified<br />
"matchTerrainToTown" : false, //if true, terrain for this zone will match native terrain of player faction<br />
<br />
"minesLikeZone" : 1,<br />
"treasureLikeZone" : 1<br />
"terrainTypeLikeZone" : 3<br />
<br />
"allowedMonsters" : ["inferno", "necropolis"] //factions of monsters allowed on this zone<br />
"allowedTowns" : ["castle", "tower", "rampart"] //towns allowed on this terrain<br />
<br />
"mines" : {<br />
"wood" : 1,<br />
"ore" : 1,<br />
},<br />
<br />
"treasure" : [<br />
{<br />
"min" : 2100,<br />
"max": 3000,<br />
"density" : 5<br />
}<br />
...<br />
]<br />
}<br />
</syntaxhighlight></div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Random_map_template&diff=3593Random map template2023-07-08T07:31:07Z<p>Warmonger: /* Template format */</p>
<hr />
<div>Ideally, template format should be 100% compatible with OH3 format and bring additional improvements.<br />
==List of currently available templates==<br />
* Analogy<br />
* Upgrade<br />
* Golden Ring<br />
* Unfair Game<br />
* Jebus Cross<br />
==Template format==<br />
<syntaxhighlight lang="javascript"><br />
/// Unique template name<br />
"Triangle" : <br />
{<br />
//optional name - useful to have several template variations with same name (since 0.99)<br />
"name" : "Custom template name",<br />
<br />
/// Minimal and maximal size of the map. Possible formats:<br />
/// Size code: s, m, l or xl for size with optional suffix "+u" for underground<br />
/// Numeric size, e.g. 120x120x1 (width x height x depth). Note that right now depth can only be 0 or 1<br />
"minSize" : "m",<br />
"maxSize" : "xl+u",<br />
<br />
/// Number of players that will be present on map (human or AI)<br />
"players" : "2-4",<br />
<br />
/// Number of AI-only players<br />
"cpu" : "2",<br />
<br />
///Optional parameter allowing to prohibit some water modes. All modes are allowed if parameter is not specified<br />
"allowedWaterContent" : ["none", "normal", "islands"]<br />
<br />
/// List of named zones, see below for format description<br />
"zones" :<br />
{<br />
"zoneA" : { ... },<br />
"zoneB" : { ... },<br />
"zoneC" : { ... }<br />
},<br />
"connections" :<br />
[<br />
{ "a" : "zoneA", "b" : "zoneB", "guard" : 5000, "road" : "false" },<br />
{ "a" : "zoneA", "b" : "zoneC", "guard" : 5000, "road" : "random" },<br />
{ "a" : "zoneB", "b" : "zoneC", "type" : "wide" } //"fictive", "repulsive"<br />
//"wide" connections have no border, or guard. "fictive" and "repulsive" connections are virtual -<br />
//they do not create actual path, but only attract or repulse zones, respectively<br />
]<br />
}<br />
</syntaxhighlight><br />
<br />
== Zone format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"type" : "playerStart", //"cpuStart" "treasure" "junction"<br />
"size" : 2, //relative size of zone<br />
"owner" : 1, //player owned this zone<br />
"playerTowns" : {<br />
"castles" : 1<br />
//"towns" : 1<br />
},<br />
"neutralTowns" : {<br />
//"castles" : 1<br />
"towns" : 1<br />
},<br />
"townsAreSameType" : true,<br />
"monsters" : "normal", //"weak" "strong"<br />
<br />
"terrainTypes" : [ "sand" ], //possible terrain types. All terrains will be available if not specified<br />
"matchTerrainToTown" : false, //if true, terrain for this zone will match native terrain of player faction<br />
<br />
"minesLikeZone" : 1,<br />
"treasureLikeZone" : 1<br />
"terrainTypeLikeZone" : 3<br />
<br />
"allowedMonsters" : ["inferno", "necropolis"] //factions of monsters allowed on this zone<br />
"allowedTowns" : ["castle", "tower", "rampart"] //towns allowed on this terrain<br />
<br />
"mines" : {<br />
"wood" : 1,<br />
"ore" : 1,<br />
},<br />
<br />
"treasure" : [<br />
{<br />
"min" : 2100,<br />
"max": 3000,<br />
"density" : 5<br />
}<br />
...<br />
]<br />
}<br />
</syntaxhighlight></div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Object_Format&diff=3592Object Format2023-07-05T19:53:24Z<p>Warmonger: /* Description */</p>
<hr />
<div>==Description==<br />
Full object consists from 3 parts:<br />
* Object group - set of objects that have similar behavior and share same identifier in H3 (towns, heroes, mines, etc)<br />
* Object type - object with fixed behavior but without fixed appearance. Multiple objects types may share same group<br />
* Object template - defines appearance of an object - image used to display it, its size & blockmap. These entries only describe templates that will be used when object is placed via map editor or generated by the game. When new object is created its starting appearance will be copied from template<br />
<br />
To create visitable object which grants all kinds of rewards (gold, experience, Bonuses etc...), see [https://github.com/vcmi/vcmi/wiki/Modding-~-Objects-~-Rewardable Rewardable] page.<br />
<br />
== Object group format ==<br />
<syntaxhighlight lang="javascript"><br />
<br />
{<br />
"myCoolObjectGroup":<br />
{<br />
//numeric ID, mandatory for h3/wog objects, shall be unique if not defined<br />
//used only for H3 objects, mods can not be used by mods<br />
"index":123,<br />
<br />
//Mandatory for new objects,<br />
// human readable name, localized <br />
//default for original objects from "OBJNAMES.TXT" <br />
"name": "My cool object",<br />
<br />
//defines C++/script class name that handles behavior of this object<br />
"handler" : "mine",<br />
<br />
// default values, will be merged with each type during loading<br />
"base" : { <object type format> },<br />
<br />
"types" : {<br />
<list of object types, see below><br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
== Object type format ==<br />
<syntaxhighlight lang="javascript"><br />
<br />
{<br />
"myCoolObject":<br />
{<br />
//numeric sub ID, mandatory for h3/wog objects, shall be unique if set<br />
//used only for H3 objects, can not be used by mods<br />
"index":123,<br />
<br />
// parameters that will be passed over to class that controls behavior of the object<br />
"producedResources" : "gold",<br />
"producedValue" : 1000<br />
<br />
// TODO: allow better selection of template for object, instead of just terrain<br />
// field describes how object template will be selected if there are multiple possiblities<br />
// exact behavior and format depends on object type<br />
"filter" : { ... },<br />
<br />
// Data for random map generator that describes how object should be placed.<br />
// If this entry is missing object will not be placed by RMG<br />
"rmg" : {<br />
// How valuable this object is, 1k = worthless, 20k = relic level<br />
"value" : 5000,<br />
<br />
// Optional, how many of such objects can be placed on map<br />
"mapLimit" : 25,<br />
<br />
// Optional, how many of such objects can be placed in one zone<br />
"zoneLimit" : 4,<br />
<br />
// Rarity of object, 10 = rare, 100 = common<br />
"rarity" : 50<br />
}<br />
<br />
// default values, will be merged with each template during loading<br />
// mostly needed to avoid redefining whole template to change 1-2 fields<br />
"base" : { <template format> },<br />
<br />
"templates" : {<br />
<templates description, see below><br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
== Object template format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"myCoolObjectTemplate" : <br />
{<br />
// resource ID of animation, relative to SPRITES directory (def file or json file)<br />
"animation":"DEFNAME.def",<br />
<br />
// resource ID of animation for mapeditor, relative to SPRITES directory (def file or json file)<br />
//0.98c+<br />
"editorAnimation":"DEFNAME.def",<br />
<br />
// directions from which hero can visit this object.<br />
// "+" means that object can be visited from that direction, or "-" othervice<br />
// default not visitable<br />
"visitableFrom" : [<br />
"---",<br />
"+++",<br />
"+++"<br />
],<br />
<br />
// passability of the object<br />
// 0=not visible, passable. Space symbol ' ' can be used as well<br />
// V=visible, passable<br />
// B=blocked, visible<br />
// H=hidden - blocked, not visible tile<br />
// A=activable, visible, passable depending on visitableFrom field<br />
// T=trigger - visiting the tile will trigger the object, tile is not visible (e.g. event)<br />
//top and left leading zeros are optional and in fact ignored<br />
//bottom, right corner of mask = bottom right corner of animation frame<br />
//animation can not be larger than size of mask<br />
"mask":[<br />
"00000000",<br />
"00000000",<br />
"00000000",<br />
"0000VVVV",<br />
"0000HBBB",<br />
"0000HHAT"<br />
],<br />
<br />
// optional; default or if explicitly set to null: all terrains except rock<br />
// allowed terrain types to place object too. Affects also RMG.<br />
// Note that map editor will still allow to place object on other terrains<br />
// allowed terrain types: "dirt", "sand", "grass", "snow", "swamp", "rough", "subterra", "lava", "water", "rock"<br />
"allowedTerrains":["dirt", "sand"],<br />
<br />
// TODO, default - empty<br />
// tags from object type are always present (???)<br />
// List of tags that can be used to locate object in map editor<br />
"tags":["dirt", "sand", "mine"],<br />
<br />
//zindex, defines order in which objects on same tile will be blit. optional, default is 0 <br />
//NOTE: legacy overlay objects has zindex = 100<br />
"zIndex": 0<br />
}<br />
}<br />
</syntaxhighlight><br />
{{Modding}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Object_Format&diff=3591Object Format2023-07-05T19:53:08Z<p>Warmonger: /* Description */</p>
<hr />
<div>==Description==<br />
Full object consists from 3 parts:<br />
* Object group - set of objects that have similar behavior and share same identifier in H3 (towns, heroes, mines, etc)<br />
* Object type - object with fixed behavior but without fixed appearance. Multiple objects types may share same group<br />
* Object template - defines appearance of an object - image used to display it, its size & blockmap. These entries only describe templates that will be used when object is placed via map editor or generated by the game. When new object is created its starting appearance will be copied from template<br />
* To create visitable object which grants all kinds of rewards (gold, experience, Bonuses etc...), see [https://github.com/vcmi/vcmi/wiki/Modding-~-Objects-~-Rewardable Rewardable] page.<br />
<br />
== Object group format ==<br />
<syntaxhighlight lang="javascript"><br />
<br />
{<br />
"myCoolObjectGroup":<br />
{<br />
//numeric ID, mandatory for h3/wog objects, shall be unique if not defined<br />
//used only for H3 objects, mods can not be used by mods<br />
"index":123,<br />
<br />
//Mandatory for new objects,<br />
// human readable name, localized <br />
//default for original objects from "OBJNAMES.TXT" <br />
"name": "My cool object",<br />
<br />
//defines C++/script class name that handles behavior of this object<br />
"handler" : "mine",<br />
<br />
// default values, will be merged with each type during loading<br />
"base" : { <object type format> },<br />
<br />
"types" : {<br />
<list of object types, see below><br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
== Object type format ==<br />
<syntaxhighlight lang="javascript"><br />
<br />
{<br />
"myCoolObject":<br />
{<br />
//numeric sub ID, mandatory for h3/wog objects, shall be unique if set<br />
//used only for H3 objects, can not be used by mods<br />
"index":123,<br />
<br />
// parameters that will be passed over to class that controls behavior of the object<br />
"producedResources" : "gold",<br />
"producedValue" : 1000<br />
<br />
// TODO: allow better selection of template for object, instead of just terrain<br />
// field describes how object template will be selected if there are multiple possiblities<br />
// exact behavior and format depends on object type<br />
"filter" : { ... },<br />
<br />
// Data for random map generator that describes how object should be placed.<br />
// If this entry is missing object will not be placed by RMG<br />
"rmg" : {<br />
// How valuable this object is, 1k = worthless, 20k = relic level<br />
"value" : 5000,<br />
<br />
// Optional, how many of such objects can be placed on map<br />
"mapLimit" : 25,<br />
<br />
// Optional, how many of such objects can be placed in one zone<br />
"zoneLimit" : 4,<br />
<br />
// Rarity of object, 10 = rare, 100 = common<br />
"rarity" : 50<br />
}<br />
<br />
// default values, will be merged with each template during loading<br />
// mostly needed to avoid redefining whole template to change 1-2 fields<br />
"base" : { <template format> },<br />
<br />
"templates" : {<br />
<templates description, see below><br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
== Object template format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"myCoolObjectTemplate" : <br />
{<br />
// resource ID of animation, relative to SPRITES directory (def file or json file)<br />
"animation":"DEFNAME.def",<br />
<br />
// resource ID of animation for mapeditor, relative to SPRITES directory (def file or json file)<br />
//0.98c+<br />
"editorAnimation":"DEFNAME.def",<br />
<br />
// directions from which hero can visit this object.<br />
// "+" means that object can be visited from that direction, or "-" othervice<br />
// default not visitable<br />
"visitableFrom" : [<br />
"---",<br />
"+++",<br />
"+++"<br />
],<br />
<br />
// passability of the object<br />
// 0=not visible, passable. Space symbol ' ' can be used as well<br />
// V=visible, passable<br />
// B=blocked, visible<br />
// H=hidden - blocked, not visible tile<br />
// A=activable, visible, passable depending on visitableFrom field<br />
// T=trigger - visiting the tile will trigger the object, tile is not visible (e.g. event)<br />
//top and left leading zeros are optional and in fact ignored<br />
//bottom, right corner of mask = bottom right corner of animation frame<br />
//animation can not be larger than size of mask<br />
"mask":[<br />
"00000000",<br />
"00000000",<br />
"00000000",<br />
"0000VVVV",<br />
"0000HBBB",<br />
"0000HHAT"<br />
],<br />
<br />
// optional; default or if explicitly set to null: all terrains except rock<br />
// allowed terrain types to place object too. Affects also RMG.<br />
// Note that map editor will still allow to place object on other terrains<br />
// allowed terrain types: "dirt", "sand", "grass", "snow", "swamp", "rough", "subterra", "lava", "water", "rock"<br />
"allowedTerrains":["dirt", "sand"],<br />
<br />
// TODO, default - empty<br />
// tags from object type are always present (???)<br />
// List of tags that can be used to locate object in map editor<br />
"tags":["dirt", "sand", "mine"],<br />
<br />
//zindex, defines order in which objects on same tile will be blit. optional, default is 0 <br />
//NOTE: legacy overlay objects has zindex = 100<br />
"zIndex": 0<br />
}<br />
}<br />
</syntaxhighlight><br />
{{Modding}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Random_map_template&diff=3561Random map template2023-03-21T17:23:14Z<p>Warmonger: /* Zone format */</p>
<hr />
<div>Ideally, template format should be 100% compatible with OH3 format and bring additional improvements.<br />
==List of currently available templates==<br />
* Analogy<br />
* Upgrade<br />
* Golden Ring<br />
* Unfair Game<br />
* Jebus Cross<br />
==Template format==<br />
<syntaxhighlight lang="javascript"><br />
/// Unique template name<br />
"Triangle" : <br />
{<br />
//optional name - useful to have several template variations with same name (since 0.99)<br />
"name" : "Custom template name",<br />
<br />
/// Minimal and maximal size of the map. Possible formats:<br />
/// Size code: s, m, l or xl for size with optional suffix "+u" for underground<br />
/// Numeric size, e.g. 120x120x1 (width x height x depth). Note that right now depth can only be 0 or 1<br />
"minSize" : "m",<br />
"maxSize" : "xl+u",<br />
<br />
/// Number of players that will be present on map (human or AI)<br />
"players" : "2-4",<br />
<br />
/// Number of AI-only players<br />
"cpu" : "2",<br />
<br />
///Optional parameter allowing to prohibit some water modes. All modes are allowed if parameter is not specified<br />
"allowedWaterContent" : ["none", "normal", "islands"]<br />
<br />
/// List of named zones, see below for format description<br />
"zones" :<br />
{<br />
"zoneA" : { ... },<br />
"zoneB" : { ... },<br />
"zoneC" : { ... }<br />
},<br />
"connections" :<br />
[<br />
{ "a" : "zoneA", "b" : "zoneB", "guard" : 5000 },<br />
{ "a" : "zoneA", "b" : "zoneC", "guard" : 5000 },<br />
{ "a" : "zoneB", "b" : "zoneC", "guard" : 5000 }<br />
]<br />
}<br />
</syntaxhighlight><br />
<br />
== Zone format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"type" : "playerStart", //"cpuStart" "treasure" "junction"<br />
"size" : 2, //relative size of zone<br />
"owner" : 1, //player owned this zone<br />
"playerTowns" : {<br />
"castles" : 1<br />
//"towns" : 1<br />
},<br />
"neutralTowns" : {<br />
//"castles" : 1<br />
"towns" : 1<br />
},<br />
"townsAreSameType" : true,<br />
"monsters" : "normal", //"weak" "strong"<br />
<br />
"terrainTypes" : [ "sand" ], //possible terrain types. All terrains will be available if not specified<br />
"matchTerrainToTown" : false, //if true, terrain for this zone will match native terrain of player faction<br />
<br />
"minesLikeZone" : 1,<br />
"treasureLikeZone" : 1<br />
"terrainTypeLikeZone" : 3<br />
<br />
"allowedMonsters" : ["inferno", "necropolis"] //factions of monsters allowed on this zone<br />
"allowedTowns" : ["castle", "tower", "rampart"] //towns allowed on this terrain<br />
<br />
"mines" : {<br />
"wood" : 1,<br />
"ore" : 1,<br />
},<br />
<br />
"treasure" : [<br />
{<br />
"min" : 2100,<br />
"max": 3000,<br />
"density" : 5<br />
}<br />
...<br />
]<br />
}<br />
</syntaxhighlight></div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=3537List of all bonus types2023-02-18T17:42:53Z<p>Warmonger: /* AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - air, 2 - fire, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== NO_TERRAIN_PENALTY (since 0.98f) ===<br />
Hero does not get movement penalty on certain terrain type (Nomads ability).<br />
*subtype - type of terrain<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*subtype = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
<br />
Effect of original Orb artifacts.<br />
<br />
* val - '''percent''' bonus to air / earth / fire / water spell damage.<br />
<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
Hero knows spell, even if this spell is banned in map options or set to "special".<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
Does not grant spells banned in map options.<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic.<br />
Does not grant spells banned in map options.<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== BATTLE_NO_FLEEING ===<br />
for Shackles of War<br />
<br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. golems, elementals<br />
=== GARGOYLE ===<br />
Gargoyle is special than NON_LIVING, cannot be rised or healed <br />
=== UNDEAD ===<br />
=== SIEGE_WEAPON ===<br />
War machines have it. They cannot be raised or healed, have no morale and don't move.<br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
* subtype - 0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
=== SOUL_STEAL ===<br />
WoG ability. Gains new creatures for each enemy killed<br />
*val: number of units gained per enemy killed<br />
*subtype: 0 - gained units survive after battle, 1 - they do not<br />
<br />
=== TRANSMUTATION ===<br />
WoG ability. % chance to transform attacked unit to other type<br />
*val: chance to trigger in %<br />
*subtype: 0 - resurrection based on HP, 1 - based on unit count<br />
*addInfo: additional info - target creature ID (attacker default)<br />
<br />
=== SUMMON_GUARDIANS ===<br />
WoG ability. Summon guardians surrounding desired stack<br />
*val - amount in % of stack count<br />
*subtype = creature ID<br />
<br />
=== RANGED_RETALIATION ===<br />
Allows shooters to perform ranged retaliation<br />
*no additional parameters<br />
<br />
=== BLOCKS_RANGED_RETALIATION ===<br />
Disallows ranged retaliation for shooter unit, BLOCKS_RETALIATION bonus is for melee retaliation only<br />
*no additional parameters<br />
<br />
=== WIDE_BREATH ===<br />
Dragon breath affecting multiple nearby hexes<br />
*no additional parameters<br />
<br />
=== FIRST_STRIKE ===<br />
First counterattack, then attack if possible<br />
*no additional parameters<br />
<br />
=== SHOOTS_ALL_ADJACENT ===<br />
H4 Cyclops-like shoot (attacks all hexes neighboring with target) without spell-like mechanics<br />
*no additional parameters<br />
<br />
=== DESTRUCTION ===<br />
Kills extra units after hit<br />
*subtype: 0 - kill percentage of units, 1 - kill amount<br />
*val: chance in percent to trigger <br />
*addInfo: amount/percentage to kill<br />
<br />
=== LIMITED_SHOOTING_RANGE (since VCMI 1.2) ===<br />
Limits shooting range and/or changes long range penalty<br />
*val: max shooting range in hexes<br />
*addInfo: optional - sets range for "broken arrow" half damage mechanic - default is 10<br />
<br />
== Special abilities ==<br />
=== CATAPULT ===<br />
<br />
=== CATAPULT_EXTRA_SHOTS ===<br />
*val - number of additional shots, requires CATAPULT bonus to work<br />
<br />
=== MANUAL_CONTROL ===<br />
* manually control warmachine with <br />
*id = subtype<br />
*val = chance<br />
<br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
* val: amount of HP regeneration per round<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
=== SPECIAL_CRYSTAL_GENERATION ===<br />
Crystal dragon crystal generation<br />
<br />
=== NO_SPELLCAST_BY_DEFAULT ===<br />
Spellcast will not be default attack option for this creature<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info - [X, Y]<br />
*X - spell level<br />
*Y = 0 - all attacks, 1 - shot only, 2 - melee only<br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info - [X, Y]<br />
*X - spell level<br />
*Y = 0 - all attacks, 1 - shot only, 2 - melee only<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
* ainfo - 0 - normal, 1 - absolute<br />
<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=3536List of all bonus types2023-02-18T17:42:43Z<p>Warmonger: /* AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - air, 2 - fire, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== NO_TERRAIN_PENALTY (since 0.98f) ===<br />
Hero does not get movement penalty on certain terrain type (Nomads ability).<br />
*subtype - type of terrain<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*subtype = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
<br />
Effect of original Orb artifacts.<br />
<br />
val - '''percent''' bonus to air / earth / fire / water spell damage.<br />
<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
Hero knows spell, even if this spell is banned in map options or set to "special".<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
Does not grant spells banned in map options.<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic.<br />
Does not grant spells banned in map options.<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== BATTLE_NO_FLEEING ===<br />
for Shackles of War<br />
<br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. golems, elementals<br />
=== GARGOYLE ===<br />
Gargoyle is special than NON_LIVING, cannot be rised or healed <br />
=== UNDEAD ===<br />
=== SIEGE_WEAPON ===<br />
War machines have it. They cannot be raised or healed, have no morale and don't move.<br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
* subtype - 0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
=== SOUL_STEAL ===<br />
WoG ability. Gains new creatures for each enemy killed<br />
*val: number of units gained per enemy killed<br />
*subtype: 0 - gained units survive after battle, 1 - they do not<br />
<br />
=== TRANSMUTATION ===<br />
WoG ability. % chance to transform attacked unit to other type<br />
*val: chance to trigger in %<br />
*subtype: 0 - resurrection based on HP, 1 - based on unit count<br />
*addInfo: additional info - target creature ID (attacker default)<br />
<br />
=== SUMMON_GUARDIANS ===<br />
WoG ability. Summon guardians surrounding desired stack<br />
*val - amount in % of stack count<br />
*subtype = creature ID<br />
<br />
=== RANGED_RETALIATION ===<br />
Allows shooters to perform ranged retaliation<br />
*no additional parameters<br />
<br />
=== BLOCKS_RANGED_RETALIATION ===<br />
Disallows ranged retaliation for shooter unit, BLOCKS_RETALIATION bonus is for melee retaliation only<br />
*no additional parameters<br />
<br />
=== WIDE_BREATH ===<br />
Dragon breath affecting multiple nearby hexes<br />
*no additional parameters<br />
<br />
=== FIRST_STRIKE ===<br />
First counterattack, then attack if possible<br />
*no additional parameters<br />
<br />
=== SHOOTS_ALL_ADJACENT ===<br />
H4 Cyclops-like shoot (attacks all hexes neighboring with target) without spell-like mechanics<br />
*no additional parameters<br />
<br />
=== DESTRUCTION ===<br />
Kills extra units after hit<br />
*subtype: 0 - kill percentage of units, 1 - kill amount<br />
*val: chance in percent to trigger <br />
*addInfo: amount/percentage to kill<br />
<br />
=== LIMITED_SHOOTING_RANGE (since VCMI 1.2) ===<br />
Limits shooting range and/or changes long range penalty<br />
*val: max shooting range in hexes<br />
*addInfo: optional - sets range for "broken arrow" half damage mechanic - default is 10<br />
<br />
== Special abilities ==<br />
=== CATAPULT ===<br />
<br />
=== CATAPULT_EXTRA_SHOTS ===<br />
*val - number of additional shots, requires CATAPULT bonus to work<br />
<br />
=== MANUAL_CONTROL ===<br />
* manually control warmachine with <br />
*id = subtype<br />
*val = chance<br />
<br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
* val: amount of HP regeneration per round<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
=== SPECIAL_CRYSTAL_GENERATION ===<br />
Crystal dragon crystal generation<br />
<br />
=== NO_SPELLCAST_BY_DEFAULT ===<br />
Spellcast will not be default attack option for this creature<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info - [X, Y]<br />
*X - spell level<br />
*Y = 0 - all attacks, 1 - shot only, 2 - melee only<br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info - [X, Y]<br />
*X - spell level<br />
*Y = 0 - all attacks, 1 - shot only, 2 - melee only<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
* ainfo - 0 - normal, 1 - absolute<br />
<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=3535List of all bonus types2023-02-18T17:42:21Z<p>Warmonger: /* AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - air, 2 - fire, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== NO_TERRAIN_PENALTY (since 0.98f) ===<br />
Hero does not get movement penalty on certain terrain type (Nomads ability).<br />
*subtype - type of terrain<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*subtype = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
<br />
Effect of original Orb artifacts - give '''percent''' bonus to air / earth / fire / water spell damage.<br />
<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
Hero knows spell, even if this spell is banned in map options or set to "special".<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
Does not grant spells banned in map options.<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic.<br />
Does not grant spells banned in map options.<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== BATTLE_NO_FLEEING ===<br />
for Shackles of War<br />
<br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. golems, elementals<br />
=== GARGOYLE ===<br />
Gargoyle is special than NON_LIVING, cannot be rised or healed <br />
=== UNDEAD ===<br />
=== SIEGE_WEAPON ===<br />
War machines have it. They cannot be raised or healed, have no morale and don't move.<br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
* subtype - 0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
=== SOUL_STEAL ===<br />
WoG ability. Gains new creatures for each enemy killed<br />
*val: number of units gained per enemy killed<br />
*subtype: 0 - gained units survive after battle, 1 - they do not<br />
<br />
=== TRANSMUTATION ===<br />
WoG ability. % chance to transform attacked unit to other type<br />
*val: chance to trigger in %<br />
*subtype: 0 - resurrection based on HP, 1 - based on unit count<br />
*addInfo: additional info - target creature ID (attacker default)<br />
<br />
=== SUMMON_GUARDIANS ===<br />
WoG ability. Summon guardians surrounding desired stack<br />
*val - amount in % of stack count<br />
*subtype = creature ID<br />
<br />
=== RANGED_RETALIATION ===<br />
Allows shooters to perform ranged retaliation<br />
*no additional parameters<br />
<br />
=== BLOCKS_RANGED_RETALIATION ===<br />
Disallows ranged retaliation for shooter unit, BLOCKS_RETALIATION bonus is for melee retaliation only<br />
*no additional parameters<br />
<br />
=== WIDE_BREATH ===<br />
Dragon breath affecting multiple nearby hexes<br />
*no additional parameters<br />
<br />
=== FIRST_STRIKE ===<br />
First counterattack, then attack if possible<br />
*no additional parameters<br />
<br />
=== SHOOTS_ALL_ADJACENT ===<br />
H4 Cyclops-like shoot (attacks all hexes neighboring with target) without spell-like mechanics<br />
*no additional parameters<br />
<br />
=== DESTRUCTION ===<br />
Kills extra units after hit<br />
*subtype: 0 - kill percentage of units, 1 - kill amount<br />
*val: chance in percent to trigger <br />
*addInfo: amount/percentage to kill<br />
<br />
=== LIMITED_SHOOTING_RANGE (since VCMI 1.2) ===<br />
Limits shooting range and/or changes long range penalty<br />
*val: max shooting range in hexes<br />
*addInfo: optional - sets range for "broken arrow" half damage mechanic - default is 10<br />
<br />
== Special abilities ==<br />
=== CATAPULT ===<br />
<br />
=== CATAPULT_EXTRA_SHOTS ===<br />
*val - number of additional shots, requires CATAPULT bonus to work<br />
<br />
=== MANUAL_CONTROL ===<br />
* manually control warmachine with <br />
*id = subtype<br />
*val = chance<br />
<br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
* val: amount of HP regeneration per round<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
=== SPECIAL_CRYSTAL_GENERATION ===<br />
Crystal dragon crystal generation<br />
<br />
=== NO_SPELLCAST_BY_DEFAULT ===<br />
Spellcast will not be default attack option for this creature<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info - [X, Y]<br />
*X - spell level<br />
*Y = 0 - all attacks, 1 - shot only, 2 - melee only<br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info - [X, Y]<br />
*X - spell level<br />
*Y = 0 - all attacks, 1 - shot only, 2 - melee only<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
* ainfo - 0 - normal, 1 - absolute<br />
<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=3526List of all bonus types2023-01-29T07:53:30Z<p>Warmonger: /* Static abilities and immunities */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - air, 2 - fire, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== NO_TERRAIN_PENALTY (since 0.98f) ===<br />
Hero does not get movement penalty on certain terrain type (Nomads ability).<br />
*subtype - type of terrain<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*subtype = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
Hero knows spell, even if this spell is banned in map options or set to "special".<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
Does not grant spells banned in map options.<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic.<br />
Does not grant spells banned in map options.<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== BATTLE_NO_FLEEING ===<br />
for Shackles of War<br />
<br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. golems, elementals<br />
=== GARGOYLE ===<br />
Gargoyle is special than NON_LIVING, cannot be rised or healed <br />
=== UNDEAD ===<br />
=== SIEGE_WEAPON ===<br />
War machines have it. They cannot be raised or healed, have no morale and don't move.<br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
* subtype - 0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
=== SOUL_STEAL ===<br />
WoG ability. Gains new creatures for each enemy killed<br />
*val: number of units gained per enemy killed<br />
*subtype: 0 - gained units survive after battle, 1 - they do not<br />
<br />
=== TRANSMUTATION ===<br />
WoG ability. % chance to transform attacked unit to other type<br />
*val: chance to trigger in %<br />
*subtype: 0 - resurrection based on HP, 1 - based on unit count<br />
*addInfo: additional info - target creature ID (attacker default)<br />
<br />
=== SUMMON_GUARDIANS ===<br />
WoG ability. Summon guardians surrounding desired stack<br />
*val - amount in % of stack count<br />
*subtype = creature ID<br />
<br />
=== RANGED_RETALIATION ===<br />
Allows shooters to perform ranged retaliation<br />
*no additional parameters<br />
<br />
=== BLOCKS_RANGED_RETALIATION ===<br />
Disallows ranged retaliation for shooter unit, BLOCKS_RETALIATION bonus is for melee retaliation only<br />
*no additional parameters<br />
<br />
=== WIDE_BREATH ===<br />
Dragon breath affecting multiple nearby hexes<br />
*no additional parameters<br />
<br />
=== FIRST_STRIKE ===<br />
First counterattack, then attack if possible<br />
*no additional parameters<br />
<br />
=== SHOOTS_ALL_ADJACENT ===<br />
H4 Cyclops-like shoot (attacks all hexes neighboring with target) without spell-like mechanics<br />
*no additional parameters<br />
<br />
=== DESTRUCTION ===<br />
Kills extra units after hit<br />
*subtype: 0 - kill percentage of units, 1 - kill amount<br />
*val: chance in percent to trigger <br />
*addInfo: amount/percentage to kill<br />
<br />
=== LIMITED_SHOOTING_RANGE (since VCMI 1.2) ===<br />
Limits shooting range and/or changes long range penalty<br />
*val: max shooting range in hexes<br />
*addInfo: optional - sets range for "broken arrow" half damage mechanic - default is 10<br />
<br />
== Special abilities ==<br />
=== CATAPULT ===<br />
<br />
=== CATAPULT_EXTRA_SHOTS ===<br />
*val - number of additional shots, requires CATAPULT bonus to work<br />
<br />
=== MANUAL_CONTROL ===<br />
* manually control warmachine with <br />
*id = subtype<br />
*val = chance<br />
<br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
* val: amount of HP regeneration per round<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
=== SPECIAL_CRYSTAL_GENERATION ===<br />
Crystal dragon crystal generation<br />
<br />
=== NO_SPELLCAST_BY_DEFAULT ===<br />
Spellcast will not be default attack option for this creature<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info - [X, Y]<br />
*X - spell level<br />
*Y = 0 - all attacks, 1 - shot only, 2 - melee only<br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info - [X, Y]<br />
*X - spell level<br />
*Y = 0 - all attacks, 1 - shot only, 2 - melee only<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
* ainfo - 0 - normal, 1 - absolute<br />
<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=3525List of all bonus types2023-01-27T18:42:51Z<p>Warmonger: /* MAGIC_SCHOOL_SKILL */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - air, 2 - fire, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== NO_TERRAIN_PENALTY (since 0.98f) ===<br />
Hero does not get movement penalty on certain terrain type (Nomads ability).<br />
*subtype - type of terrain<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*subtype = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
Hero knows spell, even if this spell is banned in map options or set to "special".<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
Does not grant spells banned in map options.<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic.<br />
Does not grant spells banned in map options.<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== BATTLE_NO_FLEEING ===<br />
for Shackles of War<br />
<br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. golems, elementals<br />
=== GARGOYLE ===<br />
Gargoyle is special than NON_LIVING, cannot be rised or healed <br />
=== UNDEAD === <br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
* subtype - 0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
=== SOUL_STEAL ===<br />
WoG ability. Gains new creatures for each enemy killed<br />
*val: number of units gained per enemy killed<br />
*subtype: 0 - gained units survive after battle, 1 - they do not<br />
<br />
=== TRANSMUTATION ===<br />
WoG ability. % chance to transform attacked unit to other type<br />
*val: chance to trigger in %<br />
*subtype: 0 - resurrection based on HP, 1 - based on unit count<br />
*addInfo: additional info - target creature ID (attacker default)<br />
<br />
=== SUMMON_GUARDIANS ===<br />
WoG ability. Summon guardians surrounding desired stack<br />
*val - amount in % of stack count<br />
*subtype = creature ID<br />
<br />
=== RANGED_RETALIATION ===<br />
Allows shooters to perform ranged retaliation<br />
*no additional parameters<br />
<br />
=== BLOCKS_RANGED_RETALIATION ===<br />
Disallows ranged retaliation for shooter unit, BLOCKS_RETALIATION bonus is for melee retaliation only<br />
*no additional parameters<br />
<br />
=== WIDE_BREATH ===<br />
Dragon breath affecting multiple nearby hexes<br />
*no additional parameters<br />
<br />
=== FIRST_STRIKE ===<br />
First counterattack, then attack if possible<br />
*no additional parameters<br />
<br />
=== SHOOTS_ALL_ADJACENT ===<br />
H4 Cyclops-like shoot (attacks all hexes neighboring with target) without spell-like mechanics<br />
*no additional parameters<br />
<br />
=== DESTRUCTION ===<br />
Kills extra units after hit<br />
*subtype: 0 - kill percentage of units, 1 - kill amount<br />
*val: chance in percent to trigger <br />
*addInfo: amount/percentage to kill<br />
<br />
=== LIMITED_SHOOTING_RANGE (since VCMI 1.2) ===<br />
Limits shooting range and/or changes long range penalty<br />
*val: max shooting range in hexes<br />
*addInfo: optional - sets range for "broken arrow" half damage mechanic - default is 10<br />
<br />
== Special abilities ==<br />
=== CATAPULT ===<br />
<br />
=== CATAPULT_EXTRA_SHOTS ===<br />
*val - number of additional shots, requires CATAPULT bonus to work<br />
<br />
=== MANUAL_CONTROL ===<br />
* manually control warmachine with <br />
*id = subtype<br />
*val = chance<br />
<br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
* val: amount of HP regeneration per round<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
=== SPECIAL_CRYSTAL_GENERATION ===<br />
Crystal dragon crystal generation<br />
<br />
=== NO_SPELLCAST_BY_DEFAULT ===<br />
Spellcast will not be default attack option for this creature<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info - [X, Y]<br />
*X - spell level<br />
*Y = 0 - all attacks, 1 - shot only, 2 - melee only<br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info - [X, Y]<br />
*X - spell level<br />
*Y = 0 - all attacks, 1 - shot only, 2 - melee only<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
* ainfo - 0 - normal, 1 - absolute<br />
<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=TODO_list&diff=2948TODO list2018-08-06T09:39:17Z<p>Warmonger: /* Adventure AI */</p>
<hr />
<div>The list of all essential, optional and requested features alongside with the team members interested in them.<br />
= Heroes III =<br />
[https://trello.com/b/68e5rAAl/vcmi-missing-features-only Missing features at Trello]<br />
=== [[Adventure AI]] ===<br />
* More functionality<br />
** Adventure map spells support<br />
** Survival instinct - AI defending towns, escaping etc.<br />
** Handling of all adventure map objects<br />
* Evaluating game objects<br />
** priority for visited objects over others sharing similiar function<br />
** Support for new objects possible to add via mods - use abstract interface to determine rewards etc.<br />
* Advanced strategy<br />
** Battle preparation (constructing suitable army & strategy)<br />
** Expert system for Bonuses ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=130 Warmonger])<br />
<br />
=== Online game ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow])<br />
<br />
=== [http://spreadsheets.google.com/ccc?key=pRhYM0YkAF9lIpLe4raNAWA Missing objects] ===<br />
* Creature abilities<br />
** [http://bugs.vcmi.eu/view.php?id=1231 Crystal Dragons]<br />
<br />
=== Main menu ===<br />
* Hall of Fame<br />
=== Audio ===<br />
* [https://github.com/vcmi/vcmi/pull/195 enviromental sounds]<br />
<br />
= Modding =<br />
* Possibility for creatures to cast arbitrary spells, as in H4/H5<br />
=== Scripting system ===<br />
* Language support<br />
* Synchronising scripts in multiplayer<br />
=== Mod system ===<br />
* Adding new content<br />
** Adventure map objects<br />
** Battlefields<br />
[http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=0 Forum thread]<br />
<br />
=== Wog features ===<br />
* Mithril<br />
* ERM handling (Tow, Tow Dragon)<br />
<br />
= New features =<br />
* Support for other languages files ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=336 Ivan])<br />
* Support for multiple map levels<br />
* [http://forum.vcmi.eu/viewtopic.php?t=1139 New map editor]<br />
* Installer<br />
=== Online game ===<br />
* Simultaneous turns<br />
* Spectator mode<br />
* Dedicated server mode<br />
* [http://forum.vcmi.eu/viewtopic.php?t=264 Replays]<br />
=== Other platforms ===<br />
* Linux (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=112 forum thread])<br />
* Mac OS (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=439 forum thread])<br />
* Android (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=850 forum thread])<br />
* Haiku (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=310 forum thread])<br />
* Maemo (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=328 forum thread])<br />
* FreeBSD (<span style="color:yellow">'''Status unknown'''</span>)<br />
<br />
= New graphics =<br />
=== New menus project and graphics ===<br />
* New stack experience menu ([http://forum.vcmi.eu/viewtopic.php?t=376&start=0 forum thread])<br />
* New stack artifact dialog<br />
=== Improved support for high resolutions ===<br />
* Auto-adjust resolution<br />
* Moddable menus<br />
=== New players ===<br />
* More player color graphics<br />
* New menus<br />
=== 32-bit graphics ===<br />
=== 800 x 480 resolution ===<br />
Experimental version posted on our forum is available [http://forum.vcmi.eu/viewtopic.php?t=273 here].</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Adventure_AI&diff=2947Adventure AI2018-08-04T17:44:03Z<p>Warmonger: </p>
<hr />
<div>VCAI is the module responsible for player actions on adventure map.<br />
<br />
[[File:VCAI Target.png|thumb]]<br />
<br />
= Basic activity =<br />
AI starts with "WIN" ultimate goal and tries to accomplish it, based on win condition for certain scenario. Additionally, it performs typical actions (like building in town) each turn. At the end of each turn, heroes who have remaining movement points try to visit all unvisited objects within their range (wander function).<br />
== Strategy ==<br />
Additional goals can be saved to be completed in the future. There is a list of locked heroes who are tied to particular important goals and try to realize them each turn.<br />
There is a list of reserved objects tied to heroes. If a hero tries to visit an object but can't reach it this turn, object is reserved. Other heroes will not try to visit that object until it's reached (or reserving hero is lost).<br />
<br />
= Goal decomposition =<br />
AT each step of algorithm, AI chooses one best sub-goal that may lead to completion of current goal (function striveToGoal). Decomposition is performed until there is possibility to complete the goal directly (goal is elementar). Typical elementar action is moving hero to certain tile.<br />
Currently the first matching goal is chosen and set as target. Then AI tries to accomplish it. End of action is indicated by exception. After making an action, AI continues to decompose the main goal until all possibilities are exhaused (infinite while loop).<br />
Some goals can be abstract. When abstract goal is chosen, it becomes main goal itself. This way abstract goal can result in multiple actions from AI, until all possible actions are exhausted.<br />
== Hero goals ==<br />
If returned goal is related to hero, this goal is then assigned to specific hero. Heroes continue their goals in subsequent turns, until it's complete. Every action that may result in completing teh goal must inform AI about such opportunity so that hero goal is erased.<br />
<br />
== List of goal types ==<br />
<br />
=Fuzzy evaluation=<br />
Since 0.94c AI used fuzzy logic to compare the multiple goals. Each goal returns the list of all possible subgoals via getAllPossibleSubgoals function. Then these goals are evaluated and best sub-goal is chosen for further processing. Each goal holds its last calculated value in "priority" field.<br />
==Locked heroes and preemption==<br />
Priorities of locked goals for heroes are stored and used in fuzzy comparison. The greater the priority, the less likely it is to choose particular locked hero. However, preemption is always possible. This way no heroes would get stuck on their goals if they are found outdated and suboptimal in new situation.</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Adventure_AI&diff=2946Adventure AI2018-08-04T17:40:06Z<p>Warmonger: </p>
<hr />
<div>VCAI is the module responsible for player actions on adventure map.<br />
<br />
[[File:VCAI Target.png]]<br />
<br />
= Basic activity =<br />
AI starts with "WIN" ultimate goal and tries to accomplish it, based on win condition for certain scenario. Additionally, it performs typical actions (like building in town) each turn. At the end of each turn, heroes who have remaining movement points try to visit all unvisited objects within their range (wander function).<br />
== Strategy ==<br />
Additional goals can be saved to be completed in the future. There is a list of locked heroes who are tied to particular important goals and try to realize them each turn.<br />
There is a list of reserved objects tied to heroes. If a hero tries to visit an object but can't reach it this turn, object is reserved. Other heroes will not try to visit that object until it's reached (or reserving hero is lost).<br />
<br />
= Goal decomposition =<br />
AT each step of algorithm, AI chooses one best sub-goal that may lead to completion of current goal (function striveToGoal). Decomposition is performed until there is possibility to complete the goal directly (goal is elementar). Typical elementar action is moving hero to certain tile.<br />
Currently the first matching goal is chosen and set as target. Then AI tries to accomplish it. End of action is indicated by exception. After making an action, AI continues to decompose the main goal until all possibilities are exhaused (infinite while loop).<br />
Some goals can be abstract. When abstract goal is chosen, it becomes main goal itself. This way abstract goal can result in multiple actions from AI, until all possible actions are exhausted.<br />
== Hero goals ==<br />
If returned goal is related to hero, this goal is then assigned to specific hero. Heroes continue their goals in subsequent turns, until it's complete. Every action that may result in completing teh goal must inform AI about such opportunity so that hero goal is erased.<br />
<br />
== List of goal types ==<br />
<br />
=Fuzzy evaluation=<br />
Since 0.94c AI used fuzzy logic to compare the multiple goals. Each goal returns the list of all possible subgoals via getAllPossibleSubgoals function. Then these goals are evaluated and best sub-goal is chosen for further processing. Each goal holds its last calculated value in "priority" field.<br />
==Locked heroes and preemption==<br />
Priorities of locked goals for heroes are stored and used in fuzzy comparison. The greater the priority, the less likely it is to choose particular locked hero. However, preemption is always possible. This way no heroes would get stuck on their goals if they are found outdated and suboptimal in new situation.</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=File:VCAI_Target.png&diff=2945File:VCAI Target.png2018-08-04T17:39:34Z<p>Warmonger: VCAI target architecture</p>
<hr />
<div>VCAI target architecture</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Adventure_AI&diff=2944Adventure AI2018-08-04T16:40:09Z<p>Warmonger: /* Basic activity */</p>
<hr />
<div>VCAI is the module responsible for player actions on adventure map.<br />
= Basic activity =<br />
AI starts with "WIN" ultimate goal and tries to accomplish it, based on win condition for certain scenario. Additionally, it performs typical actions (like building in town) each turn. At the end of each turn, heroes who have remaining movement points try to visit all unvisited objects within their range (wander function).<br />
== Strategy ==<br />
Additional goals can be saved to be completed in the future. There is a list of locked heroes who are tied to particular important goals and try to realize them each turn.<br />
There is a list of reserved objects tied to heroes. If a hero tries to visit an object but can't reach it this turn, object is reserved. Other heroes will not try to visit that object until it's reached (or reserving hero is lost).<br />
<br />
= Goal decomposition =<br />
AT each step of algorithm, AI chooses one best sub-goal that may lead to completion of current goal (function striveToGoal). Decomposition is performed until there is possibility to complete the goal directly (goal is elementar). Typical elementar action is moving hero to certain tile.<br />
Currently the first matching goal is chosen and set as target. Then AI tries to accomplish it. End of action is indicated by exception. After making an action, AI continues to decompose the main goal until all possibilities are exhaused (infinite while loop).<br />
Some goals can be abstract. When abstract goal is chosen, it becomes main goal itself. This way abstract goal can result in multiple actions from AI, until all possible actions are exhausted.<br />
== Hero goals ==<br />
If returned goal is related to hero, this goal is then assigned to specific hero. Heroes continue their goals in subsequent turns, until it's complete. Every action that may result in completing teh goal must inform AI about such opportunity so that hero goal is erased.<br />
<br />
== List of goal types ==<br />
<br />
=Fuzzy evaluation=<br />
Since 0.94c AI used fuzzy logic to compare the multiple goals. Each goal returns the list of all possible subgoals via getAllPossibleSubgoals function. Then these goals are evaluated and best sub-goal is chosen for further processing. Each goal holds its last calculated value in "priority" field.<br />
==Locked heroes and preemption==<br />
Priorities of locked goals for heroes are stored and used in fuzzy comparison. The greater the priority, the less likely it is to choose particular locked hero. However, preemption is always possible. This way no heroes would get stuck on their goals if they are found outdated and suboptimal in new situation.</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Frequently_asked_questions&diff=2363Frequently asked questions2017-02-07T16:14:28Z<p>Warmonger: /* What to expect working in VCMI? */</p>
<hr />
<div>== General ==<br />
<br />
====What to expect working in VCMI?====<br />
Most of original game except multiplayer. Everything else is better to report on our [http://bugs.vcmi.eu bugtracker].<br />
<br />
====Can I play VCMI on my Android device?====<br />
Read this: http://forum.vcmi.eu/viewtopic.php?t=614<br />
<br />
<br />
====Do I need to install WoG to play VCMI?====<br />
No. VCMI has it's own port of WoG mod available from Launcher. We recommend to install VCMI over fresh SoD/ Complete versions.<br />
<br />
== Game options ==<br />
====How can I change screen resolution?====<br />
Start any scenario, open System Options dialog and click "High" button. Note that you need to restart VCMI for this option to have effect.<br />
<br />
<br />
====How to turn off creature queue panel in battles?====<br />
Hotkey to switch this panel is "Q"<br />
<br />
<br />
====Can I turn off some WoG features that I don't like?====<br />
Yes. Take a look on config/defaultMods.json file and edit it to your liking.<br />
<br />
Note to Linux users: this file can be found in vcmi data directory (run vcmiclient -v to see path). It can be copied into ~/.vcmi/config/ to avoid editing file usually owned by root.<br />
<br />
<br />
== Mods ==<br />
====Is it possible to add town X to vcmi?====<br />
This depends on town authors or anyone else willing to port it to vcmi. Aim of VCMI is to provide ''support'' for such features.<br />
<br />
<br />
====Where can I find mods for VCMI?====<br />
Check [[Modding_guidelines#For_players]] page</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Frequently_asked_questions&diff=2362Frequently asked questions2017-02-07T16:14:08Z<p>Warmonger: /* Do I need to install WoG to play VCMI? */</p>
<hr />
<div>== General ==<br />
<br />
====What to expect working in VCMI?====<br />
Most of original game except for RMG (Random map generator), campaigns and multiplayer. Everything else is better to report on our [http://bugs.vcmi.eu bugtracker].<br />
<br />
<br />
====Can I play VCMI on my Android device?====<br />
Read this: http://forum.vcmi.eu/viewtopic.php?t=614<br />
<br />
<br />
====Do I need to install WoG to play VCMI?====<br />
No. VCMI has it's own port of WoG mod available from Launcher. We recommend to install VCMI over fresh SoD/ Complete versions.<br />
<br />
== Game options ==<br />
====How can I change screen resolution?====<br />
Start any scenario, open System Options dialog and click "High" button. Note that you need to restart VCMI for this option to have effect.<br />
<br />
<br />
====How to turn off creature queue panel in battles?====<br />
Hotkey to switch this panel is "Q"<br />
<br />
<br />
====Can I turn off some WoG features that I don't like?====<br />
Yes. Take a look on config/defaultMods.json file and edit it to your liking.<br />
<br />
Note to Linux users: this file can be found in vcmi data directory (run vcmiclient -v to see path). It can be copied into ~/.vcmi/config/ to avoid editing file usually owned by root.<br />
<br />
<br />
== Mods ==<br />
====Is it possible to add town X to vcmi?====<br />
This depends on town authors or anyone else willing to port it to vcmi. Aim of VCMI is to provide ''support'' for such features.<br />
<br />
<br />
====Where can I find mods for VCMI?====<br />
Check [[Modding_guidelines#For_players]] page</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=TODO_list&diff=2273TODO list2016-10-01T15:30:57Z<p>Warmonger: /* Heroes III */</p>
<hr />
<div>The list of all essential, optional and requested features alongside with the team members interested in them.<br />
= Heroes III =<br />
[https://trello.com/b/68e5rAAl/vcmi-missing-features-only Missing features at Trello]<br />
=== [[Adventure AI]] ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow]) <br />
* More functionality<br />
** Adventure map spells support<br />
** Resources management<br />
** Reasoning for town building merged with main engine<br />
** Survival instinct - AI defending towns, escaping etc.<br />
** Handling of all adventure map objects<br />
* Evaluating game objects<br />
** priority for visited objects over others sharing similiar function<br />
** Support for new objects possible to add via mods - use abstract interface to determine rewards etc.<br />
* Advanced strategy<br />
** Battle preparation (constructing suitable army & strategy)<br />
** Expert system for Bonuses ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=130 Warmonger])<br />
<br />
=== Online game ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow])<br />
<br />
=== [http://spreadsheets.google.com/ccc?key=pRhYM0YkAF9lIpLe4raNAWA Missing objects] ===<br />
* Creature abilities<br />
** [http://bugs.vcmi.eu/view.php?id=1231 Crystal Dragons]<br />
<br />
=== Main menu ===<br />
* Hall of Fame<br />
=== Audio ===<br />
* [https://github.com/vcmi/vcmi/pull/195 enviromental sounds]<br />
<br />
= Modding =<br />
* Possibility for creatures to cast arbitrary spells, as in H4/H5<br />
=== Scripting system ===<br />
* Language support<br />
* Synchronising scripts in multiplayer<br />
=== Mod system ===<br />
* Adding new content<br />
** Adventure map objects<br />
** Battlefields<br />
[http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=0 Forum thread]<br />
<br />
=== Wog features ===<br />
* Mithril<br />
* ERM handling (Tow, Tow Dragon)<br />
<br />
= New features =<br />
* Support for other languages files ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=336 Ivan])<br />
* Support for multiple map levels<br />
* [http://forum.vcmi.eu/viewtopic.php?t=1139 New map editor]<br />
* Installer<br />
=== Online game ===<br />
* Simultaneous turns<br />
* Spectator mode<br />
* Dedicated server mode<br />
* [http://forum.vcmi.eu/viewtopic.php?t=264 Replays]<br />
=== Other platforms ===<br />
* Linux (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=112 forum thread])<br />
* Mac OS (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=439 forum thread])<br />
* Android (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=850 forum thread])<br />
* Haiku (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=310 forum thread])<br />
* Maemo (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=328 forum thread])<br />
* FreeBSD (<span style="color:yellow">'''Status unknown'''</span>)<br />
<br />
= New graphics =<br />
=== New menus project and graphics ===<br />
* New stack experience menu ([http://forum.vcmi.eu/viewtopic.php?t=376&start=0 forum thread])<br />
* New stack artifact dialog<br />
=== Improved support for high resolutions ===<br />
* Auto-adjust resolution<br />
* Moddable menus<br />
=== New players ===<br />
* More player color graphics<br />
* New menus<br />
=== 32-bit graphics ===<br />
=== 800 x 480 resolution ===<br />
Experimental version posted on our forum is available [http://forum.vcmi.eu/viewtopic.php?t=273 here].</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=TODO_list&diff=2262TODO list2016-09-05T18:41:04Z<p>Warmonger: /* Audio */</p>
<hr />
<div>The list of all essential, optional and requested features alongside with the team members interested in them.<br />
= Heroes III =<br />
=== [[Adventure AI]] ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow]) <br />
* More functionality<br />
** Adventure map spells support<br />
** Resources management<br />
** Reasoning for town building merged with main engine<br />
** Survival instinct - AI defending towns, escaping etc.<br />
** Handling of all adventure map objects<br />
* Evaluating game objects<br />
** priority for visited objects over others sharing similiar function<br />
** Support for new objects possible to add via mods - use abstract interface to determine rewards etc.<br />
* Advanced strategy<br />
** Battle preparation (constructing suitable army & strategy)<br />
** Expert system for Bonuses ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=130 Warmonger])<br />
<br />
=== Online game ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow])<br />
<br />
=== [http://spreadsheets.google.com/ccc?key=pRhYM0YkAF9lIpLe4raNAWA Missing objects] ===<br />
* Creature abilities<br />
** [http://bugs.vcmi.eu/view.php?id=1231 Crystal Dragons]<br />
<br />
=== Main menu ===<br />
* Hall of Fame<br />
=== Audio ===<br />
* [https://github.com/vcmi/vcmi/pull/195 enviromental sounds]<br />
<br />
= Modding =<br />
* Possibility for creatures to cast arbitrary spells, as in H4/H5<br />
=== Scripting system ===<br />
* Language support<br />
* Synchronising scripts in multiplayer<br />
=== Mod system ===<br />
* Adding new content<br />
** Adventure map objects<br />
** Battlefields<br />
[http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=0 Forum thread]<br />
<br />
=== Wog features ===<br />
* Mithril<br />
* ERM handling (Tow, Tow Dragon)<br />
<br />
= New features =<br />
* Support for other languages files ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=336 Ivan])<br />
* Support for multiple map levels<br />
* [http://forum.vcmi.eu/viewtopic.php?t=1139 New map editor]<br />
* Installer<br />
=== Online game ===<br />
* Simultaneous turns<br />
* Spectator mode<br />
* Dedicated server mode<br />
* [http://forum.vcmi.eu/viewtopic.php?t=264 Replays]<br />
=== Other platforms ===<br />
* Linux (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=112 forum thread])<br />
* Mac OS (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=439 forum thread])<br />
* Android (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=850 forum thread])<br />
* Haiku (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=310 forum thread])<br />
* Maemo (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=328 forum thread])<br />
* FreeBSD (<span style="color:yellow">'''Status unknown'''</span>)<br />
<br />
= New graphics =<br />
=== New menus project and graphics ===<br />
* New stack experience menu ([http://forum.vcmi.eu/viewtopic.php?t=376&start=0 forum thread])<br />
* New stack artifact dialog<br />
=== Improved support for high resolutions ===<br />
* Auto-adjust resolution<br />
* Moddable menus<br />
=== New players ===<br />
* More player color graphics<br />
* New menus<br />
=== 32-bit graphics ===<br />
=== 800 x 480 resolution ===<br />
Experimental version posted on our forum is available [http://forum.vcmi.eu/viewtopic.php?t=273 here].</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=TODO_list&diff=2261TODO list2016-09-05T18:40:21Z<p>Warmonger: /* New features */</p>
<hr />
<div>The list of all essential, optional and requested features alongside with the team members interested in them.<br />
= Heroes III =<br />
=== [[Adventure AI]] ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow]) <br />
* More functionality<br />
** Adventure map spells support<br />
** Resources management<br />
** Reasoning for town building merged with main engine<br />
** Survival instinct - AI defending towns, escaping etc.<br />
** Handling of all adventure map objects<br />
* Evaluating game objects<br />
** priority for visited objects over others sharing similiar function<br />
** Support for new objects possible to add via mods - use abstract interface to determine rewards etc.<br />
* Advanced strategy<br />
** Battle preparation (constructing suitable army & strategy)<br />
** Expert system for Bonuses ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=130 Warmonger])<br />
<br />
=== Online game ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow])<br />
<br />
=== [http://spreadsheets.google.com/ccc?key=pRhYM0YkAF9lIpLe4raNAWA Missing objects] ===<br />
* Creature abilities<br />
** [http://bugs.vcmi.eu/view.php?id=1231 Crystal Dragons]<br />
<br />
=== Main menu ===<br />
* Hall of Fame<br />
=== Audio ===<br />
* enviromental sounds<br />
<br />
= Modding =<br />
* Possibility for creatures to cast arbitrary spells, as in H4/H5<br />
=== Scripting system ===<br />
* Language support<br />
* Synchronising scripts in multiplayer<br />
=== Mod system ===<br />
* Adding new content<br />
** Adventure map objects<br />
** Battlefields<br />
[http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=0 Forum thread]<br />
<br />
=== Wog features ===<br />
* Mithril<br />
* ERM handling (Tow, Tow Dragon)<br />
<br />
= New features =<br />
* Support for other languages files ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=336 Ivan])<br />
* Support for multiple map levels<br />
* [http://forum.vcmi.eu/viewtopic.php?t=1139 New map editor]<br />
* Installer<br />
=== Online game ===<br />
* Simultaneous turns<br />
* Spectator mode<br />
* Dedicated server mode<br />
* [http://forum.vcmi.eu/viewtopic.php?t=264 Replays]<br />
=== Other platforms ===<br />
* Linux (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=112 forum thread])<br />
* Mac OS (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=439 forum thread])<br />
* Android (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=850 forum thread])<br />
* Haiku (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=310 forum thread])<br />
* Maemo (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=328 forum thread])<br />
* FreeBSD (<span style="color:yellow">'''Status unknown'''</span>)<br />
<br />
= New graphics =<br />
=== New menus project and graphics ===<br />
* New stack experience menu ([http://forum.vcmi.eu/viewtopic.php?t=376&start=0 forum thread])<br />
* New stack artifact dialog<br />
=== Improved support for high resolutions ===<br />
* Auto-adjust resolution<br />
* Moddable menus<br />
=== New players ===<br />
* More player color graphics<br />
* New menus<br />
=== 32-bit graphics ===<br />
=== 800 x 480 resolution ===<br />
Experimental version posted on our forum is available [http://forum.vcmi.eu/viewtopic.php?t=273 here].</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=2193List of all bonus types2016-06-09T20:34:36Z<p>Warmonger: /* ENEMY_CANT_ESCAPE */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - fire, 2 - air, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== NO_TERRAIN_PENALTY (since 0.98f) ===<br />
Hero does not get movement penalty on certain terrain type (Nomads ability).<br />
*subtype - type of terrain<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*val = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
Hero knows spell, even if this spell is banned in map options or set to "special".<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
Does not grant spells banned in map options.<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic.<br />
Does not grant spells banned in map options.<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== BATTLE_NO_FLEEING ===<br />
for Shackles of War<br />
<br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. gargoyle <br />
=== UNDEAD === <br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
* subtype - 0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
== Special abilities ==<br />
=== CATAPULT === <br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only] <br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only]<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
* ainfo - 0 - normal, 1 - absolute<br />
<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Random_map_template&diff=2192Random map template2016-06-06T09:40:23Z<p>Warmonger: /* Template format */</p>
<hr />
<div>Ideally, template format should be 100% compatible with OH3 format and bring additional improvements.<br />
==List of currently available templates==<br />
* Analogy<br />
* Upgrade<br />
* Golden Ring<br />
* Unfair Game<br />
* Jebus Cross<br />
==Template format==<br />
<syntaxhighlight lang="javascript"><br />
/// Unique template name<br />
"Triangle" : <br />
{<br />
//optional name - useful to have several template variations with same name (since 0.99)<br />
"name" : "Custom template name",<br />
<br />
/// Minimal and maximal size of the map. Possible formats:<br />
/// Size code: s, m, l or xl for size with optional suffix "+u" for underground<br />
/// Numeric size, e.g. 120x120x1 (width x height x depth). Note that right now depth can only be 0 or 1<br />
"minSize" : "m",<br />
"maxSize" : "xl+u",<br />
<br />
/// Number of players that will be present on map (human or AI)<br />
"players" : "4",<br />
<br />
/// Number of AI-only players<br />
"cpu" : "2",<br />
<br />
/// List of named zones, see below for format description<br />
"zones" :<br />
{<br />
"zoneA" : { ... },<br />
"zoneB" : { ... },<br />
"zoneC" : { ... }<br />
},<br />
"connections" :<br />
[<br />
{ "a" : "zoneA", "b" : "zoneB", "guard" : 5000 },<br />
{ "a" : "zoneA", "b" : "zoneC", "guard" : 5000 },<br />
{ "a" : "zoneB", "b" : "zoneC", "guard" : 5000 }<br />
]<br />
}<br />
</syntaxhighlight><br />
<br />
== Zone format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"type" : "playerStart", //"cpuStart" "treasure"<br />
"size" : 2,<br />
"owner" : 1,<br />
"playerTowns" : {<br />
"castles" : 1<br />
},<br />
"neutralTowns" : {<br />
"towns" : 1<br />
},<br />
"townsAreSameType" : true,<br />
"monsters" : "normal",<br />
<br />
"terrainTypes" : [ "sand" ],<br />
"matchTerrainToTown" : false,<br />
<br />
"minesLikeZone" : 1,<br />
"treasureLikeZone" : 1<br />
"terrainTypeLikeZone" : 3<br />
<br />
"mines" : {<br />
"wood" : 1,<br />
"ore" : 1,<br />
},<br />
<br />
"treasure" : [<br />
{<br />
"min" : 2100,<br />
"max": 3000,<br />
"density" : 5<br />
}<br />
...<br />
]<br />
}<br />
</syntaxhighlight></div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Talk:Object_instance_format&diff=2118Talk:Object instance format2016-02-05T11:03:40Z<p>Warmonger: /* Notes */</p>
<hr />
<div>== Possible enchancements ==<br />
* Mine : "army" - already supported by engine, but can't be configured in map<br />
*: Should we prepare army/guards option for _all_ objects?<br />
*:: Only those that can have army in H3. Mines can have guards set by player.<br />
<br />
* Random dwelling : instead of using "linked" field just don't save unused field. So if dwelling is linked "sameAsTown" is present, while "allowedFactions" is not and vice versa.<br />
<br />
* Random dwelling : Perhaps we can find better way to store references to other object without specifying coordinates? By some unique ID for example? (same applies to quests and what else uses such scheme)<br />
*: We can introduce instance ID for all objects as incremented counter (vector position will not work for map editor) (and may be reuse it in engine too as separate std::map<si32, CGObjectInstance>).<br />
<br />
* Scholar : save only active reward? Scholar with skill will have "skill" : "wisdom", scholar with spell will have "spell" : "magicArrow" field<br />
*: Ok {{done}}, may we need to unify rewards with other objects?<br />
*:: For example? If you mean using same code for giving rewards - then I suggest to wait.<br />
<br />
* Monster : remove "randomCount" - if "count" is not defined, assume that count is random<br />
*: {{done}}<br />
<br />
== Fields renames/tweaks==<br />
<br />
* Stack instance: "creCount" -> "amount" - readability<br />
*:{{done}}<br />
<br />
* Stack instance: "creID" -> "type" - readability<br />
*:{{done}} Hate this one: "type" is a keyword in pascal (but can be used as identifier in form &type).<br />
*:: In cases like this I'm fine with any other word that makes sense :)<br />
<br />
* Garrison: "garrison" -> "army" - for consistency with hero, town, etc.<br />
*: {{done}}<br />
<br />
* Hero: "sex" (string) -> "female" (bool) - to match engine & modding format<br />
*: This need 3 values: female, male, and "defined by config"<br />
*:: true, false and null? Null is valid value for json and so is lack of entry.<br />
*::: The question is how to define this in code cleanly? Simple types are not nullable. (I can use Variant, and recheck how is it serialized).<br />
<br />
* Hero: "id" - I don't like this word. Type? Base Hero? <br />
*:{{done}} set to type, see above :)<br />
<br />
* Check for case inconsistencies - I see "spellID" and "spellId" in some fields. Same applies to other types of id's<br />
* Or just remove "id" part from all fields. "spell" : "slow". Looks fine for me.<br />
*:{{done}}<br />
<br />
== Notes ==<br />
<br />
* IIRC there is difference between "empty" garrison in town and "undefined" garrison. Game spawns 1-2 stack in town for undefined garrisons. For format that means that entry with 0 items is not identical to lack of entry.<br />
:* Let array of empty objects be empty garrison, array of zero elements be undefined garrison.<br />
<br />
* Any reason to have any actual default values? What "mana" : -1 means for hero? If default value should be used then just don't write this entry in map. (or write null entry: "mana" : null).<br />
:* where did you fined that? In pandora or local event? There it means take 1 mana. Default there is 0 and not saved (examples was made with explicit serialization of default values). Also serialize simple types as null is not trivial.<br />
::* Check hero format - it has several "-1". Not mana but patrol radius & primary skills. As for serialization - prehaps you use something similar to c++ boost::optional?<br />
:::* In real save they will be null, all default values are omitted by serializer and default equals null on de-serialisation. I`ll fix examples.<br />
<br />
* I don't see a reason to have this field:<br />
<syntaxhighlight lang="javascript"><br />
"upgraded": true //optional, for random objects<br />
</syntaxhighlight><br />
Upgrades of stacks are fixed depend on object coordinates. Check CGCreature::containsUpgradedStack() --[[User:Warmonger|Warmonger]] ([[User talk:Warmonger|talk]]) 12:03, 5 February 2016 (CET)</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=2117List of all bonus types2016-02-04T16:51:26Z<p>Warmonger: /* Hero bonuses */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - fire, 2 - air, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== NO_TERRAIN_PENALTY (since 0.98f) ===<br />
Hero does not get movement penalty on certain terrain type (Nomads ability).<br />
*subtype - type of terrain<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*val = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
Hero knows spell, even if this spell is banned in map options or set to "special".<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
Does not grant spells banned in map options.<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic.<br />
Does not grant spells banned in map options.<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== ENEMY_CANT_ESCAPE ===<br />
for Shackles of War <br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. gargoyle <br />
=== UNDEAD === <br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
* subtype - 0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
== Special abilities ==<br />
=== CATAPULT === <br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only] <br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only]<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
* ainfo - 0 - normal, 1 - absolute<br />
<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Bonus_Format&diff=2116Bonus Format2016-02-04T16:48:48Z<p>Warmonger: /* Available prefixes */</p>
<hr />
<div>Enumerative parameters are described in HeroBonus.h file.<br />
===Short format===<br />
<syntaxhighlight lang="javascript"><br />
{<br />
["BONUS_TYPE", val, subtype, additionalInfo]<br />
}<br />
</syntaxhighlight><br />
===Full format===<br />
All parameters but type are optional.<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"type": "BONUS_TYPE",<br />
"subtype": 0,<br />
"val" : 0,<br />
"valueType": "VALUE_TYPE",<br />
"addInfo" : 0,<br />
<br />
"duration" : "BONUS_DURATION", //or ["BONUS_DURATION1", "BONUS_DURATION2"] ..."<br />
"turns" : 0,<br />
<br />
"sourceType" : "SOURCE_TYPE",<br />
"sourceID" : 0,<br />
"effectRange" : "EFFECT_RANGE",<br />
"limiters" : [<br />
"PREDEFINED_LIMITER", optional_parameters (...), //whhich one is preferred?<br />
{"type" : LIMITER_TYPE, "parameters" : [1,2,3]}<br />
]<br />
"propagator" : ["PROPAGATOR_TYPE", optional_parameters (...)]<br />
"description" : ""<br />
}<br />
</syntaxhighlight><br />
<br />
== Subtype resolution ==<br />
<br />
All string identifiers of items can be used in "subtype" field. This allows cross-referencing between the mods and make config file more readable.<br />
=== Available prefixes ===<br />
* creature.<br />
* artifact.<br />
* skill.<br />
<syntaxhighlight lang="javascript"><br />
"pathfinding", "archery", "logistics", "scouting", "diplomacy",<br />
"navigation", "leadership", "wisdom", "mysticism", "luck",<br />
"ballistics", "eagleEye", "necromancy", "estates", "fireMagic",<br />
"airMagic", "waterMagic", "earthMagic", "scholar", "tactics",<br />
"artillery", "learning", "offence", "armorer", "intelligence",<br />
"sorcery", "resistance", "firstAid"<br />
</syntaxhighlight><br />
* resource.<br />
Possible values:<br />
<syntaxhighlight lang="javascript"><br />
"wood", "mercury", "ore", "sulfur", "crystal", "gems", "gold", "mithril"<br />
</syntaxhighlight><br />
* hero.<br />
* faction.<br />
* spell.<br />
* primSkill<br />
<syntaxhighlight lang="javascript"><br />
"attack", "defence", "spellpower", "knowledge" <br />
</syntaxhighlight><br />
* terrain (since 0.99)<br />
<syntaxhighlight lang="javascript"><br />
"dirt", "sand", "grass", "snow", "swamp", "rough", "subterra", "lava", "water", "rock"<br />
</syntaxhighlight><br />
<br />
=== Example ===<br />
<syntaxhighlight lang="javascript"><br />
"bonus" :<br />
{<br />
"type" : "HATE",<br />
"subtype" : "creature.enchanter",<br />
"val" : 50<br />
}<br />
</syntaxhighlight><br />
This bonus makes creature do 50% more damage to Enchanters.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=TODO_list&diff=2022TODO list2015-11-02T16:23:06Z<p>Warmonger: /* Missing objects */</p>
<hr />
<div>The list of all essential, optional and requested features alongside with the team members interested in them.<br />
= Heroes III =<br />
=== [[Adventure AI]] ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow]) <br />
* More functionality<br />
** Adventure map spells support<br />
** Resources management<br />
** Reasoning for town building merged with main engine<br />
** Survival instinct - AI defending towns, escaping etc.<br />
** Handling of all adventure map objects<br />
* Evaluating game objects<br />
** priority for visited objects over others sharing similiar function<br />
** Support for new objects possible to add via mods - use abstract interface to determine rewards etc.<br />
* Advanced strategy<br />
** Battle preparation (constructing suitable army & strategy)<br />
** Expert system for Bonuses ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=130 Warmonger])<br />
<br />
=== Online game ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow])<br />
<br />
=== [http://spreadsheets.google.com/ccc?key=pRhYM0YkAF9lIpLe4raNAWA Missing objects] ===<br />
* Creature abilities<br />
** [http://bugs.vcmi.eu/view.php?id=1231 Crystal Dragons]<br />
<br />
=== Main menu ===<br />
* Hall of Fame<br />
=== Audio ===<br />
* enviromental sounds<br />
<br />
= Modding =<br />
* Possibility for creatures to cast arbitrary spells, as in H4/H5<br />
=== Scripting system ===<br />
* Language support<br />
* Synchronising scripts in multiplayer<br />
=== Mod system ===<br />
* Adding new content<br />
** Adventure map objects<br />
** Battlefields<br />
[http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=0 Forum thread]<br />
<br />
=== Wog features ===<br />
* Mithril<br />
* ERM handling (Tow, Tow Dragon)<br />
<br />
= New features =<br />
* Support for other languages files ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=336 Ivan])<br />
* Support for multiple map levels<br />
* New map editor<br />
* Installer<br />
=== Online game ===<br />
* Simultaneous turns<br />
* Spectator mode<br />
* Dedicated server mode<br />
* [http://forum.vcmi.eu/viewtopic.php?t=264 Replays]<br />
=== Other platforms ===<br />
* Linux (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=112 forum thread])<br />
* Mac OS (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=439 forum thread])<br />
* Android (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=850 forum thread])<br />
* Haiku (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=310 forum thread])<br />
* Maemo (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=328 forum thread])<br />
* FreeBSD (<span style="color:yellow">'''Status unknown'''</span>)<br />
<br />
= New graphics =<br />
=== New menus project and graphics ===<br />
* New stack experience menu ([http://forum.vcmi.eu/viewtopic.php?t=376&start=0 forum thread])<br />
* New stack artifact dialog<br />
=== Improved support for high resolutions ===<br />
* Auto-adjust resolution<br />
* Moddable menus<br />
=== New players ===<br />
* More player color graphics<br />
* New menus<br />
=== 32-bit graphics ===<br />
=== 800 x 480 resolution ===<br />
Experimental version posted on our forum is available [http://forum.vcmi.eu/viewtopic.php?t=273 here].</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=TODO_list&diff=2015TODO list2015-10-12T04:44:53Z<p>Warmonger: /* Missing objects */</p>
<hr />
<div>The list of all essential, optional and requested features alongside with the team members interested in them.<br />
= Heroes III =<br />
=== [[Adventure AI]] ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow]) <br />
* More functionality<br />
** Adventure map spells support<br />
** Resources management<br />
** Reasoning for town building merged with main engine<br />
** Survival instinct - AI defending towns, escaping etc.<br />
** Handling of all adventure map objects<br />
* Evaluating game objects<br />
** priority for visited objects over others sharing similiar function<br />
** Support for new objects possible to add via mods - use abstract interface to determine rewards etc.<br />
* Advanced strategy<br />
** Battle preparation (constructing suitable army & strategy)<br />
** Expert system for Bonuses ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=130 Warmonger])<br />
<br />
=== Online game ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow])<br />
<br />
=== [http://spreadsheets.google.com/ccc?key=pRhYM0YkAF9lIpLe4raNAWA Missing objects] ===<br />
* Creature abilities<br />
** [http://bugs.vcmi.eu/view.php?id=1231 Crystal Dragons]<br />
** [http://bugs.vcmi.eu/view.php?id=1230 Nomads]<br />
<br />
=== Main menu ===<br />
* Hall of Fame<br />
=== Audio ===<br />
* enviromental sounds<br />
<br />
= Modding =<br />
* Possibility for creatures to cast arbitrary spells, as in H4/H5<br />
=== Scripting system ===<br />
* Language support<br />
* Synchronising scripts in multiplayer<br />
=== Mod system ===<br />
* Adding new content<br />
** Adventure map objects<br />
** Battlefields<br />
[http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=0 Forum thread]<br />
<br />
=== Wog features ===<br />
* Mithril<br />
* ERM handling (Tow, Tow Dragon)<br />
<br />
= New features =<br />
* Support for other languages files ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=336 Ivan])<br />
* Support for multiple map levels<br />
* New map editor<br />
* Installer<br />
=== Online game ===<br />
* Simultaneous turns<br />
* Spectator mode<br />
* Dedicated server mode<br />
* [http://forum.vcmi.eu/viewtopic.php?t=264 Replays]<br />
=== Other platforms ===<br />
* Linux (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=112 forum thread])<br />
* Mac OS (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=439 forum thread])<br />
* Android (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=850 forum thread])<br />
* Haiku (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=310 forum thread])<br />
* Maemo (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=328 forum thread])<br />
* FreeBSD (<span style="color:yellow">'''Status unknown'''</span>)<br />
<br />
= New graphics =<br />
=== New menus project and graphics ===<br />
* New stack experience menu ([http://forum.vcmi.eu/viewtopic.php?t=376&start=0 forum thread])<br />
* New stack artifact dialog<br />
=== Improved support for high resolutions ===<br />
* Auto-adjust resolution<br />
* Moddable menus<br />
=== New players ===<br />
* More player color graphics<br />
* New menus<br />
=== 32-bit graphics ===<br />
=== 800 x 480 resolution ===<br />
Experimental version posted on our forum is available [http://forum.vcmi.eu/viewtopic.php?t=273 here].</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=2007List of all bonus types2015-09-15T19:18:24Z<p>Warmonger: /* SPELL */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - fire, 2 - air, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*val = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
Hero knows spell, even if this spell is banned in map options or set to "special".<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
Does not grant spells banned in map options.<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic.<br />
Does not grant spells banned in map options.<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== ENEMY_CANT_ESCAPE ===<br />
for Shackles of War <br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. gargoyle <br />
=== UNDEAD === <br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
* subtype - 0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
== Special abilities ==<br />
=== CATAPULT === <br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only] <br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only]<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=2006List of all bonus types2015-09-15T19:16:46Z<p>Warmonger: /* SPELLS_OF_LEVEL */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - fire, 2 - air, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*val = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
hero knows spell<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
Does not grant spells banned in map options.<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic.<br />
Does not grant spells banned in map options.<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== ENEMY_CANT_ESCAPE ===<br />
for Shackles of War <br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. gargoyle <br />
=== UNDEAD === <br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
* subtype - 0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
== Special abilities ==<br />
=== CATAPULT === <br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only] <br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only]<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=2005List of all bonus types2015-09-15T19:16:13Z<p>Warmonger: /* FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - fire, 2 - air, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*val = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
hero knows spell<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic.<br />
Does not grant spells banned in map options.<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== ENEMY_CANT_ESCAPE ===<br />
for Shackles of War <br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. gargoyle <br />
=== UNDEAD === <br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
* subtype - 0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
== Special abilities ==<br />
=== CATAPULT === <br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only] <br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only]<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=2004List of all bonus types2015-09-15T19:14:20Z<p>Warmonger: /* GENERAL_DAMAGE_REDUCTION */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - fire, 2 - air, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*val = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
hero knows spell<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== ENEMY_CANT_ESCAPE ===<br />
for Shackles of War <br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. gargoyle <br />
=== UNDEAD === <br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
* subtype - 0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
== Special abilities ==<br />
=== CATAPULT === <br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only] <br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only]<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=2003List of all bonus types2015-09-15T19:13:23Z<p>Warmonger: /* LIFE_DRAIN */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - fire, 2 - air, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*val = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
hero knows spell<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== ENEMY_CANT_ESCAPE ===<br />
for Shackles of War <br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. gargoyle <br />
=== UNDEAD === <br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
== Special abilities ==<br />
=== CATAPULT === <br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only] <br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only]<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=2002List of all bonus types2015-09-15T19:12:42Z<p>Warmonger: /* REBIRTH */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - fire, 2 - air, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*val = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
hero knows spell<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== ENEMY_CANT_ESCAPE ===<br />
for Shackles of War <br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. gargoyle <br />
=== UNDEAD === <br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
== Special abilities ==<br />
=== CATAPULT === <br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained (since 0.92)<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only] <br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only]<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of total stack HP restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=List_of_all_bonus_types&diff=2001List of all bonus types2015-09-15T19:12:18Z<p>Warmonger: /* SPELL_BEFORE_ATTACK */</p>
<hr />
<div>The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.<br />
<br />
= General-purpose bonuses =<br />
=== NONE ===<br />
=== MORALE, LUCK ===<br />
*val = value<br />
=== MAGIC_SCHOOL_SKILL ===<br />
eg. for magic plains terrain<br />
*subtype: school of magic (0 - all, 1 - fire, 2 - air, 4 - water, 8 - earth)<br />
*val - level<br />
<br />
=== NO_TYPE ===<br />
=== DARKNESS ===<br />
*val = radius<br />
<br />
= Hero bonuses = <br />
=== MOVEMENT ===<br />
both water / land<br />
* val = number of movement points (100 points for a tile)<br />
<br />
=== LAND_MOVEMENT, SEA_MOVEMENT ===<br />
* val = number of movement points (100 points for a tile)<br />
=== WATER_WALKING ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== FLYING_MOVEMENT ===<br />
*subtype: 1 - without penalty, 2 - with penalty<br />
<br />
=== PRIMARY_SKILL ===<br />
* uses subtype to pick skill<br />
* additional info if set: 1 - only melee, 2 - only distance<br />
<br />
=== SIGHT_RADIOUS ===<br />
Additional bonus to range of sight<br />
* val = distance in tiles<br />
<br />
=== MANA_REGENERATION ===<br />
points per turn apart from normal (1 + mysticism) <br />
=== FULL_MANA_REGENERATION ===<br />
all mana points are replenished every day <br />
=== NONEVIL_ALIGNMENT_MIX ===<br />
good and neutral creatures can be mixed without morale penalty <br />
=== SECONDARY_SKILL_PREMY ===<br />
% <br />
=== SURRENDER_DISCOUNT ===<br />
% <br />
=== IMPROVED_NECROMANCY ===<br />
allows Necropolis units other than skeletons to be raised by necromancy<br />
== Hero specialties ==<br />
=== SPECIAL_SECONDARY_SKILL ===<br />
*subtype = skill id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPECIAL_SPELL_LEV ===<br />
*subtype = id<br />
*additionalInfo = value per level in percent<br />
<br />
=== SPELL_DAMAGE ===<br />
*val = value in percent<br />
<br />
=== SPECIFIC_SPELL_DAMAGE ===<br />
*subtype = id of spell<br />
*val = value in percent (Luna, Ciele)<br />
<br />
=== SPECIAL_BLESS_DAMAGE ===<br />
*subtype = spell (bless by default)<br />
*val = value per level in percent<br />
<br />
=== MAXED_SPELL ===<br />
Spell always has expert effects but not expert range<br />
*subtype = id<br />
<br />
=== SPECIAL_PECULIAR_ENCHANT ===<br />
blesses and curses with id = val dependent on unit's level<br />
*subtype = 0 or 1 for Coronius<br />
<br />
=== SPECIAL_UPGRADE ===<br />
*val = base creature ID<br />
*addInfo = target creature ID<br />
<br />
= Artifact bonuses =<br />
=== SPELL_DURATION ===<br />
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===<br />
=== BLOCK_MORALE, BLOCK_LUCK ===<br />
=== SPELL ===<br />
hero knows spell<br />
*subtype - spell id<br />
*val - skill level (0 - 3)<br />
<br />
=== SPELLS_OF_LEVEL ===<br />
hero knows all spells of given level<br />
*subtype - level<br />
*val - skill level<br />
<br />
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===<br />
All spells of this school are granted to hero, eg. by Tomes of Magic<br />
<br />
=== GENERATE_RESOURCE ===<br />
*subtype - [[resource]] type<br />
*val - daily income<br />
<br />
=== CREATURE_GROWTH ===<br />
for legion artifacts<br />
*value - weekly growth bonus,<br />
*subtype - monster level if aplicable<br />
<br />
=== CREATURE_GROWTH_PERCENT ===<br />
increases growth of all units in all towns,<br />
*val - percentage<br />
<br />
=== ENEMY_CANT_ESCAPE ===<br />
for Shackles of War <br />
=== NEGATE_ALL_NATURAL_IMMUNITIES ===<br />
Orb of Vulnerability<br />
=== OPENING_BATTLE_SPELL ===<br />
casts a spell at expert level at beginning of battle<br />
*subtype - [[spell]] id<br />
*val - spell power<br />
<br />
=== FREE_SHIP_BOARDING ===<br />
movement points preserved with ship boarding and landing<br />
=== WHIRLPOOL_PROTECTION ===<br />
hero won't lose army when teleporting through whirlpool<br />
<br />
= Creature bonuses =<br />
=== STACK_HEALTH ===<br />
=== STACKS_SPEED ===<br />
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part<br />
<br />
=== CREATURE_DAMAGE ===<br />
*subtype: 0 = both, 1 = min, 2 = max<br />
<br />
=== SHOTS ===<br />
=== EXP_MULTIPLIER ===<br />
*val - percent of additional exp gained by stack / commander (base value 100)<br />
<br />
= Creature abilities =<br />
== Static abilities and immunities ==<br />
=== NON_LIVING ===<br />
eg. gargoyle <br />
=== UNDEAD === <br />
=== DRAGON_NATURE ===<br />
=== KING1, KING2, KING3 ===<br />
Creatures take more damage from basic, advanced or expert Slayer effect.<br />
<br />
=== FEARLESS ===<br />
=== NO_LUCK ===<br />
eg. when fighting on cursed ground <br />
=== NO_MORALE ===<br />
eg. when fighting on cursed ground<br />
=== SELF_MORALE ===<br />
eg. minotaur<br />
=== SELF_LUCK ===<br />
halfling<br />
<br />
== Combat abilities == <br />
=== FLYING ===<br />
*subtype - 0 - regular, 1 - teleport<br />
<br />
=== SHOOTER === <br />
=== CHARGE_IMMUNITY === <br />
=== ADDITIONAL_ATTACK === <br />
=== UNLIMITED_RETALIATIONS === <br />
=== ADDITIONAL_RETALIATION ===<br />
*value - number of additional retaliations<br />
<br />
=== JOUSTING ===<br />
for champions <br />
=== HATE ===<br />
eg. angels hate devils,<br />
*subtype - ID of hated creature,<br />
*val - damage bonus percent<br />
<br />
=== SPELL_LIKE_ATTACK ===<br />
range is taken from spell, but damage from creature; eg. magog, lich<br />
*subtype - spell,<br />
*value - spell level<br />
<br />
=== THREE_HEADED_ATTACK ===<br />
eg. cerberus<br />
=== ATTACKS_ALL_ADJACENT ===<br />
eg. hydra<br />
=== TWO_HEX_ATTACK_BREATH ===<br />
eg. dragons <br />
=== RETURN_AFTER_STRIKE ===<br />
=== ENEMY_DEFENCE_REDUCTION ===<br />
in % (value) eg. behemots <br />
=== GENERAL_DAMAGE_REDUCTION ===<br />
0 - shield (melee) , 1 - air shield effect (ranged)<br />
<br />
=== GENERAL_ATTACK_REDUCTION ===<br />
eg. while stoned or blinded - in %<br />
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage<br />
<br />
=== DEFENSIVE_STANCE ===<br />
WoG ability.<br />
*val - bonus to defense while defending<br />
<br />
=== NO_DISTANCE_PENALTY ===<br />
=== NO_MELEE_PENALTY ===<br />
Ranged stack does full damage in melee.<br />
<br />
=== NO_WALL_PENALTY ===<br />
=== FREE_SHOOTING ===<br />
stacks can shoot even if otherwise blocked (sharpshooter's bow effect) <br />
=== BLOCKS_RETALIATION ===<br />
eg. naga<br />
<br />
== Special abilities ==<br />
=== CATAPULT === <br />
=== CHANGES_SPELL_COST_FOR_ALLY ===<br />
eg. mage<br />
*value - reduction in mana points<br />
<br />
=== CHANGES_SPELL_COST_FOR_ENEMY ===<br />
eg. Silver Pegasus<br />
*value - mana points penalty<br />
<br />
=== SPELL_RESISTANCE_AURA ===<br />
eg. unicorns<br />
*value - resistance bonus in % for adjacent creatures <br />
=== HP_REGENERATION ===<br />
creature regenerates val HP every new round<br />
* subtype - 1 for green animation<br />
<br />
=== FULL_HP_REGENERATION ===<br />
first creature regenerates all HP every new round<br />
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)<br />
<br />
=== MANA_DRAIN ===<br />
value - spell points per turn<br />
=== MANA_CHANNELING ===<br />
eg. familiar<br />
*value in %<br />
<br />
=== LIFE_DRAIN ===<br />
* val - precentage of life drained (since 0.92)<br />
<br />
=== DOUBLE_DAMAGE_CHANCE ===<br />
eg. dread knight<br />
*value in %<br />
<br />
=== FEAR === <br />
=== HEALER ===<br />
First aid tent<br />
=== FIRE_SHIELD === <br />
=== MAGIC_MIRROR ===<br />
*value - chance of redirecting in %<br />
<br />
=== ACID_BREATH ===<br />
*val - damage per creature after attack,<br />
*additional info - chance in percent<br />
<br />
=== DEATH_STARE ===<br />
*subtype: 0 - gorgon, 1 - commander<br />
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack<br />
<br />
== Creature spellcasting and activated abilities ==<br />
=== SPELLCASTER ===<br />
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon <br />
*subtype - spell id<br />
*value - level of school<br />
*additional info - weighted chance<br />
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power<br />
<br />
=== ENCHANTER ===<br />
for Enchanter spells<br />
*val - skill level<br />
*subtype - spell id<br />
*additionalInfo - cooldown (number of turns) <br />
=== RANDOM_SPELLCASTER ===<br />
eg. master genie<br />
*val - spell mastery level<br />
<br />
=== SPELL_AFTER_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only] <br />
=== SPELL_BEFORE_ATTACK ===<br />
*subtype - spell id<br />
*value - chance %<br />
*additional info % 1000 - level<br />
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only]<br />
<br />
=== CASTS ===<br />
how many times creature can cast activated spell<br />
=== SPECIFIC_SPELL_POWER ===<br />
*value used for Thunderbolt and Resurrection casted by units<br />
*subtype - spell id <br />
=== CREATURE_SPELL_POWER ===<br />
*value per unit, divided by 100 (so faerie Dragons have 500) <br />
=== CREATURE_ENCHANT_POWER ===<br />
total duration of spells casted by creature <br />
=== DAEMON_SUMMONING ===<br />
pit lord<br />
*subtype - type of creatures<br />
*val - hp per unit <br />
=== REBIRTH ===<br />
*val - percent of life restored<br />
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)<br />
===ENCHANTED===<br />
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.<br />
Enchantment is refreshed every turn.<br />
<br />
== Spell immunities ==<br />
=== LEVEL_SPELL_IMMUNITY ===<br />
creature is immune to all spell with level below or equal to value of this bonus <br />
=== MAGIC_RESISTANCE ===<br />
*value - percent<br />
=== SPELL_DAMAGE_REDUCTION ===<br />
eg. golems<br />
*value - reduction in %<br />
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth<br />
=== MORE_DAMAGE_FROM_SPELL ===<br />
*value - damage increase in %<br />
* subtype - spell id<br />
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===<br />
*subtype 0 - all, 1 - all except positive, 2 - only damage spells<br />
=== MIND_IMMUNITY ===<br />
Creature is immune to all mind spells. <br />
=== SPELL_IMMUNITY ===<br />
*subtype - spell id<br />
=== DIRECT_DAMAGE_IMMUNITY ===<br />
WoG ability. Creature is completely immune to damage spells.<br />
=== RECEPTIVE ===<br />
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.<br />
<br />
= Spell effects =<br />
=== POISON ===<br />
*val - max health penalty from poison possible<br />
=== SLAYER ===<br />
*value - spell level<br />
<br />
=== BIND_EFFECT ===<br />
doesn't do anything particular, works as a marker<br />
=== FORGETFULL ===<br />
forgetfulness spell effect<br />
*value - level <br />
=== NOT_ACTIVE ===<br />
=== ALWAYS_MINIMUM_DAMAGE ===<br />
unit does its minimum damage from range<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage penalty (it'll subtracted from dmg)<br />
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]<br />
<br />
=== ALWAYS_MAXIMUM_DAMAGE ===<br />
eg. bless effect<br />
*subtype: -1 - any attack, 0 - melee, 1 - ranged<br />
*value: additional damage<br />
*additional info - multiplicative bonus for dmg in % <br />
=== ATTACKS_NEAREST_CREATURE ===<br />
while in berserk <br />
=== IN_FRENZY ===<br />
*value - level<br />
<br />
=== HYPNOTIZED ===<br />
<br />
=== NO_RETALIATION ===<br />
Eg. when blinded or paralyzed.<br />
<br />
{{Bonuses}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Talk:Map_format&diff=1968Talk:Map format2015-08-24T17:50:48Z<p>Warmonger: /* Teams */</p>
<hr />
<div>== Versioning ==<br />
Right now there are three fields that describe map version: format version, format revision, engine version.<br />
<br />
Suggestion: remove redundant engine version & possibly - rename version+revision to major version + minor version (more logical names from my point of view)<br />
: Done --[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 03:36, 3 July 2015 (CEST)<br />
<br />
==Level header==<br />
1) Any actual reason to split map objects by level? Perhaps keep them in one file instead of per-level?<br />
<br />
: Just a bit smaller file, no level coordinate. --[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 03:13, 3 July 2015 (CEST)<br />
<br />
2) Do we need to keep reference to json file with terrain? Maybe use same name as level, e.g. "surface.json" to avoid inconsistencies in naming?<br />
: We are already using this type of indirection in mod configs, kinda standard. --[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 03:13, 3 July 2015 (CEST)<br />
<br />
:: That's mostly because mods have complex filesystem and may add multiple objects or modify existing. If we were to put (for example) all data associated with one object like creature into one archive like we're going with maps I would prefer to use fixed names within that archive as well. So IMO there is no need for configurable names within map archive. [[User:Ivan|Ivan]] ([[User talk:Ivan|talk]]) 21:03, 3 July 2015 (CEST)<br />
<br />
3) "depth" - rename to generic "index"? After all, maps with more are not necessarily stacked on top of each other - they can represent different parts of world as well.<br />
: fixed here, already "index" in map editor --[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 03:13, 3 July 2015 (CEST)<br />
<br />
==Terrain==<br />
[F][flags as uint8]<br />
Perhaps they should be coded as part of terrain/road/river descriptions?<br />
: {{done}}--[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 09:59, 27 July 2015 (CEST)<br />
E.g.<br />
<pre><br />
_ no rotation (use space instead?)<br />
- left-right flip<br />
| top-bottom flip<br />
+ both directions<br />
<br />
Example: wt34+pc3-<br />
</pre><br />
<br />
: Nice idea, but there are some other flag bits except rotation. "coastal bit" and may few more. Should we use them? --[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 03:27, 3 July 2015 (CEST)<br />
<br />
:: IIRC there is also "favorable winds" flag. Ideally I'd rather remove them entirely - from map format as well as from engine. Coastal tile is tile that neighbours water tile. Not one that has some flag that may or may not be set by editor. [[User:Ivan|Ivan]] ([[User talk:Ivan|talk]]) 21:10, 3 July 2015 (CEST)<br />
::: So engine should set coastal flag on map load?<br />
<br />
:::: If necessary. I'd rather add some sort of method "isTileCoastal" that will check neighbours for water and will be called only when needed. [[User:Ivan|Ivan]] ([[User talk:Ivan|talk]]) 08:53, 4 July 2015 (CEST)<br />
<br />
Othervice looks great. And nice idea with using logical expressions for allowed objects. Haven't thought about it before :)<br />
<br />
[[User:Ivan|Ivan]] ([[User talk:Ivan|talk]]) 19:37, 2 July 2015 (CEST)<br />
<br />
* Also csv for 2d terrain array is more suitable than json. How about that? --[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 03:29, 3 July 2015 (CEST)<br />
<br />
: I'd rather avoid introducing yet another config format if only to reduce amount of code we need to support (I know that CSV format is trivial but still). If speed is critical here (loading 10k+ of tiles may do that) them we may consider binary format but I'd rather keep this as a last resort.<br />
<br />
== Teams ==<br />
<br />
How about configuring teams globally, like<br />
<pre><br />
"teams" : [[1, 2, 3], [4, 5]]<br />
</pre><br />
<br />
This way you could see them at glance. Team editiing may become easier as well (one tab).<br />
<br />
I was thinking about arbitrary teams in random maps, as above. These may be not directly related, bt would be good to keep both formats consient.<br />
--[[User:Warmonger|Warmonger]] ([[User talk:Warmonger|talk]]) 19:50, 24 August 2015 (CEST)</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Talk:Map_format&diff=1967Talk:Map format2015-08-24T17:50:17Z<p>Warmonger: /* Teams */ new section</p>
<hr />
<div>== Versioning ==<br />
Right now there are three fields that describe map version: format version, format revision, engine version.<br />
<br />
Suggestion: remove redundant engine version & possibly - rename version+revision to major version + minor version (more logical names from my point of view)<br />
: Done --[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 03:36, 3 July 2015 (CEST)<br />
<br />
==Level header==<br />
1) Any actual reason to split map objects by level? Perhaps keep them in one file instead of per-level?<br />
<br />
: Just a bit smaller file, no level coordinate. --[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 03:13, 3 July 2015 (CEST)<br />
<br />
2) Do we need to keep reference to json file with terrain? Maybe use same name as level, e.g. "surface.json" to avoid inconsistencies in naming?<br />
: We are already using this type of indirection in mod configs, kinda standard. --[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 03:13, 3 July 2015 (CEST)<br />
<br />
:: That's mostly because mods have complex filesystem and may add multiple objects or modify existing. If we were to put (for example) all data associated with one object like creature into one archive like we're going with maps I would prefer to use fixed names within that archive as well. So IMO there is no need for configurable names within map archive. [[User:Ivan|Ivan]] ([[User talk:Ivan|talk]]) 21:03, 3 July 2015 (CEST)<br />
<br />
3) "depth" - rename to generic "index"? After all, maps with more are not necessarily stacked on top of each other - they can represent different parts of world as well.<br />
: fixed here, already "index" in map editor --[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 03:13, 3 July 2015 (CEST)<br />
<br />
==Terrain==<br />
[F][flags as uint8]<br />
Perhaps they should be coded as part of terrain/road/river descriptions?<br />
: {{done}}--[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 09:59, 27 July 2015 (CEST)<br />
E.g.<br />
<pre><br />
_ no rotation (use space instead?)<br />
- left-right flip<br />
| top-bottom flip<br />
+ both directions<br />
<br />
Example: wt34+pc3-<br />
</pre><br />
<br />
: Nice idea, but there are some other flag bits except rotation. "coastal bit" and may few more. Should we use them? --[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 03:27, 3 July 2015 (CEST)<br />
<br />
:: IIRC there is also "favorable winds" flag. Ideally I'd rather remove them entirely - from map format as well as from engine. Coastal tile is tile that neighbours water tile. Not one that has some flag that may or may not be set by editor. [[User:Ivan|Ivan]] ([[User talk:Ivan|talk]]) 21:10, 3 July 2015 (CEST)<br />
::: So engine should set coastal flag on map load?<br />
<br />
:::: If necessary. I'd rather add some sort of method "isTileCoastal" that will check neighbours for water and will be called only when needed. [[User:Ivan|Ivan]] ([[User talk:Ivan|talk]]) 08:53, 4 July 2015 (CEST)<br />
<br />
Othervice looks great. And nice idea with using logical expressions for allowed objects. Haven't thought about it before :)<br />
<br />
[[User:Ivan|Ivan]] ([[User talk:Ivan|talk]]) 19:37, 2 July 2015 (CEST)<br />
<br />
* Also csv for 2d terrain array is more suitable than json. How about that? --[[User:AVS|AVS]] ([[User talk:AVS|talk]]) 03:29, 3 July 2015 (CEST)<br />
<br />
: I'd rather avoid introducing yet another config format if only to reduce amount of code we need to support (I know that CSV format is trivial but still). If speed is critical here (loading 10k+ of tiles may do that) them we may consider binary format but I'd rather keep this as a last resort.<br />
<br />
== Teams ==<br />
<br />
How about configuring teams globally, like<br />
"teams" : [[1, 2, 3], [4, 5]]<br />
<br />
This way you could see them at glance. Team editiing may become easier as well (one tab).<br />
<br />
I was thinking about arbitrary teams in random maps, as above. These may be not directly related, bt would be good to keep both formats consient.<br />
--[[User:Warmonger|Warmonger]] ([[User talk:Warmonger|talk]]) 19:50, 24 August 2015 (CEST)</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=How_to_build_VCMI_(Windows)&diff=1950How to build VCMI (Windows)2015-08-01T07:53:34Z<p>Warmonger: /* Prerequisites */</p>
<hr />
<div>= Prerequisites =<br />
* Installed Heroes3 (can be bought for $10 at [http://www.gog.com/en/gamecard/heroes_of_might_and_magic_3_complete_edition/ gog.com])<br />
* Optionally, you can have also WoG or ERA installed.<br />
* IDE: <br />
** Microsoft Visual C++ 2013 Express for Desktop. It can be downloaded for free from [http://go.microsoft.com/?linkid=9832280&clcid=0x409 microsoft.com]. Higher editions of Visual Studio (Professional, Premium and Ultimate) are also supported. <br />
** Visual Studio 2012 is support is deprecated but still present.<br />
** Visual Studio 2010 is *not* supported and won't work.<br />
* Git client: <br />
** Visual Studio 2013 has built-in Git support. It isn't complete, but having most important Git commands integrated in IDE is very convienent. Update 2 brings a few handy features (blame).<br />
** Visual Studio 2012 [which you shouldn't use anyway] offers similar (though more limited) feature set through official plugin. [http://visualstudiogallery.msdn.microsoft.com/abafc7d6-dcaa-40f4-8a5e-d6724bdb980c microsoft.com]<br />
** Because Visual Studio support for Git is limited, I recommend having installed some else Git client, like TortoiseGit [http://code.google.com/p/tortoisegit/ code.google.com]<br />
* Libraries pack: [http://download.vcmi.eu/vcmi_bundle.7z vcmi_bundle]. It contains includes and pre-built binaries of several libraries VCMI uses. You DO NOT need to download them separately, they're in the pack. The libraries included are:<br />
** SDL2<br />
** SDL2_image<br />
** SDL2_mixer<br />
** SDL2_TTF<br />
** [http://www.zlib.net/ zlib]<br />
* Boost libraries You can either build them using sources from [http://www.boost.org/users/download/ boost.org] (it's very simple, check the instruction below) or download the binaries from [http://sourceforge.net/projects/boost/files/boost-binaries/]. Depending on the version of Visual Studio you use, you'll need:<br />
** Boost 1.51 or (preferably) newer for Visual Studio 2012<br />
** Boost 1.56 or (preferably) newer for Visual Studio 2013<br />
<br />
= Preparing place =<br />
== Initial directory structure and libraries pack ==<br />
Create a directory for VCMI development, eg. C:\VCMI. Extract there libraries pack. It contains initial directory structure.<br />
<br />
It is recommended to avoid non-ascii characters in the path to your VCMI development folder. The folder should not be write-protected by system. <br />
Good location:<br />
* C:\VCMI<br />
Bad locations:<br />
* C:\Users\Michał\VCMI (non-ascii character)<br />
* C:\Program Files (x86)\VCMI (write protection)<br />
<br />
== Obtaining VCMI sources ==<br />
=== Using Visual Studio===<br />
* Start Visual Studio. Don't load any project.<br />
* Open Team Explorer panel.<br />
* Click the "Connect to Team Projects" icon at the Team Explorer's top bar. <br />
* Make sure that the "Local Git Repositories" node is expanded and click the "Clone" below it. <br />
* Enter the <br />
** repo address (first field): https://github.com/vcmi/vcmi )<br />
** the desired path for the repo to be placed. In our example this'll be: C:\VCMI\trunk<br />
* Click clone. Done.<br />
<br />
Now you have the local copy of the repository on the disk. It should appear in the Team Explorer under the "Local Git Repositories" section. Double click it and then select a solution to open.<br />
<br />
<br />
=== Using TortoiseGit client ===<br />
(The screenshots are not updated for the Git, however the process is pretty much the same.)<br />
<br />
Libraries pack contains default subfolder for VCMI sources named trunk. Right click it and select "Git Clone…" from context menu.<br />
<br />
[[File:trunk-menu.png|250px]]<br />
<br />
<br />
In the dialog type (or paste :]) https://github.com/vcmi/vcmi/ as URL of repository. You should not need to alter other options.<br />
<br />
[[File:Checkout.png|250px]]<br />
<br />
<br />
Hit OK and latest VCMI sources will be downloaded from the repository. Double click VCMI_VS11.sln file to open VCMI projects in Visual Studio.<br />
<br />
== Boost libraries ==<br />
VCMI depends on the Boost libraries. You can either build them on your own or download the installer.<br />
<br />
=== Using precompiled binaries ===<br />
Go to http://sourceforge.net/projects/boost/files/boost-binaries/ and enter the latest stable (not beta) build directory. Then download the appropriate version. If you are following the suggested workflow (Visual 2013, 32-bit VCMI build) this would be "boost_1_55_0-msvc-12.0-32.exe" (sic! msvc-12.0 means Visual 2013)<br />
<br />
Run the installer. If you chose the default install location, your paths to library are:<br />
* Include path: C:\local\boost_1_55_0<br />
* Library path: C:\local\boost_1_55_0\lib32-msvc-12.0<br />
<br />
<br />
=== Building from sources ===<br />
Boost libraries sources are distributed as an archive file containing single folder named like "boost_1_55_0". Let's assume that you've extracted the archive into C:\C++ folder.<br />
<br />
Instructions on how to build Boost are available in the [http://www.boost.org/doc/libs/release/more/getting_started/ libraries documentation]. As for 1.55.0 version it's as simple as typing in the '''VS2013 x86 Native Tools Command Prompt''' (look for it in your Start menu; the usual Command Prompt might work as well) the following:<br />
<pre>cd "C:\C++\boost_1_55_0"<br />
bootstrap<br />
b2 address-model=32 --toolset=msvc-12.0 --stagedir=./stage32</pre><br />
<br />
If you want to build 64-bit version of VCMI issue also<br />
<pre>b2 address-model=64 --toolset=msvc-12.0 --stagedir=./stage64</pre><br />
<br />
When build is complete (it may take some time), there should exist folder C:\C++\boost_1_55_0\stage32\lib containing numerous *.lib files. It's your Boost '''library directory'''. Your Boost '''include directory''' will be C:\C++\boost_1_55_0.<br />
<br />
== FFmpeg (after 0.96) ==<br />
<br />
Download dev and shared libraries from http://ffmpeg.zeranoe.com/builds/. Shared package contains .dll libraries (TODO: list which ones). Dev package contains sources.<br />
<br />
Set FFMPEG enviromental variable to Dev folder containing folder lib. http://www.rapidee.com/en/about is an easy tool for the job. You may need to restart MSMV for changes to take place.<br />
<br />
= Adjusting project files =<br />
== Adding Boost library folders ==<br />
All projects are aware of includes/ and libs/ directories in the main VCMI folder. Because libraries package uses them, the only remaining issue is giving IDE information where you have Boost library (the only library not included in the package).<br />
<br />
<br />
There are several alternative ways to do that:<br />
=== Global ===<br />
By following these steps, you'll enable Boost for all your projects in Visual Studio. If you wish to use Boost in your other projects without repeating this setup, this scenario is recommended. <br />
<br />
# Select "expert settings" mode (Tools -> Settings -> Expert Settings). This step may not be needed for Visual Studio editions other then Express.<br />
# Open Property Pages (View -> Property Pages).<br />
# In the property manager panel (that just showed up) expand any project and then expand any Win32 configuration within it (Debug or RD). It doesn't make any difference which project and configuration you'll pick, since they all share the one property sheet we're interested in.<br />
# Double click on Microsoft.Cpp.Win32.user (or r-click it -> Properties). Property window opens.<br />
# Select "VC++ Directories".<br />
# Click on "Include Directories" row. <br />
## A small button on the right appears. Click it and click on <Edit...>. <br />
## Click on "New Line" icon.<br />
## Click on "..." batton on the right of textbox that appeared.<br />
## Select your Boost '''include directory''' (eg. C:\C++\boost_1_55_0). Confirm with OK.<br />
## Check if your folder path correrctly appeared on the list. Click OK to save changes and dismiss window.<br />
# Click on "Library Directories" row. Repeat the steps described for "Include directories", just this time select Boost '''library directory''' (eg. C:\C++\boost_1_47_0\stage\lib). <br />
# Close the property page with OK.<br />
<br />
[[File:vc_dirs.png|250px]] [[File:include.png|250px]]<br />
<br />
=== For all VCMI projects ===<br />
Follow the instructions from previous section with one exception — in step 4. select VCMI_global property sheet.<br />
<br />
=== Individually per project ===<br />
Add Boost individually for each of the VCMI projects. This is not recommended, since it's most tiresome way.<br />
<br />
Open solution explorer. Right click on the project and select "Properties". Follow steps 5 — 8 from "Global" section. Repeat for each project.<br />
<br />
=== Put along with other libs ===<br />
Project files are pre-configured to use includes/ and libs/ subfolders (that are meant to be next to the trunk folder) during lookup for headers and libs. <br />
To make Boost visible to compiler, you can simply copy<br />
* all the boost .lib's (by default from boostfolder/boost_1_x_y/stage/lib) to the libs/ subfolder in your main VCMI directory <br />
* folder "boostfolder/boost_1_x_y/boost" to the includes/ subfolder. Be careful, you need to copy "boost" folder, not its contents!<br />
<br />
= Compiling =<br />
Now you should be able to successfully build VCMI. Select "Build solution" from "Build" menu or press F7. Wait until the compilation finishes.<br />
<br />
You should finally see <code class="inline">========== Build: 8 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========</code> message in the IDE output. Built VCMI binaries will be put in the solution folder (C:\VCMI\trunk in our example). If you want to run VCMI somewhere else, open each project properties and adjust "Output Directory" in "General Properties" tab.<br />
<br />
Remember that VCMI_client.exe, VCMI_client.dll and VCMI_server.exe need to be in the same directory and AI (GeniusAI.dll) must be in AI/ subfolder.<br />
<br />
= Running and debugging VCMI =<br />
After compilation you should have received new VCMI binaries in your trunk/ folder:<br />
* VCMI_client.exe<br />
* VCMI_server.exe<br />
* VCMI_lib.dll <br />
* GeniusAI.dll (in trunk/AI/ subfolder)<br />
* StupidAI.dll (in trunk/AI/ subfolder)<br />
<br />
== Running VCMI in a build place (recommended) ==<br />
=== VCMI files ===<br />
Extract package with latest VCMI release to the trunk folder. It contains some content (fonts, graphics, etc) that are not part of SVN repository.<br />
<strong>Do NOT overwrite</strong> anything. Files from repository are always most up-to-date and have priority over the ones released some time ago.<br />
If you overwrite any file from SVN you can always use Revert command from TortoiseSVN.<br />
<br />
=== H3 files ===<br />
VCMI needs files with content from H3.<br />
Copy:<br />
* From the game folder:<br />
** MP3 folder with its contents<br />
** binkw32.dll<br />
** smackw32.dll<br />
* From Data subfolder:<br />
** VIDEO.VID<br />
** Heroes3.snd<br />
** h3sprite.lod<br />
** h3bitmap.lod<br />
** H3ab_bmp.lod<br />
** H3ab_ahd.snd<br />
** H3ab_ahd.vid<br />
<br />
You'll also may want to copy some (or all) maps.<br />
<br />
VCMI should be smart enough to give meaningful error message when one of content files is missing. Check the console output or VCMI_client_log.txt if something goes wrong.<br />
<br />
=== Libraries ===<br />
Additionally, you need to copy all *.dll files from libraries pack (libs/x86) to the trunk folder (or your destination folder of choice).<br />
<br />
== Running VCMI in external folder ==<br />
Alternatively, you can simply replace binaries in existing VCMI installation with the ones you've built. <br />
In such case you should also replace .txt files in config/ directory with the ones from trunk (and any other relevant files that have changed in SVN).<br />
<br />
It's not very convenient because you need to copy files each time after build. To avoid that necessity you can change Output Directory in properties of all projects. Then binaries you built will be automatically put in the right place.<br />
However you would still need to remember about changes in config files. (Some script for copying them used as post-built event may be a good idea here)<br />
<br />
<br />
== Running / debugging VCMI from IDE ==<br />
Visual Studio offers several convenient commands to run / debug project. Before you can use them, you need to set Working Directory to <code class="inline">$(OutDir)</code> in project properties for VCMI_client.<br />
<br />
[[File:workingDir.png|250px]]<br />
<br />
Now you can start debugging by:<br />
* Using Start Debugging (F5) command - starts game with debugger attached<br />
* Using Step Over/Into (F10 or F11) command - starts game and stops at the beginning of main function, allowing line-by-line execution<br />
* Running VCMI normally and attaching debugger to its process<br />
<br />
To debug server, you need to attach to its process before it crashes; otherwise you will just see an information that server has crashed. No breakpoints in its code will be hit. However, in Visual Studio Professional or higher there is possibility to attach to server after is crashes.<br />
<br />
= Further help =<br />
If you need any further help, ask at [http://forum.vcmi.eu our forums].</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=How_to_build_VCMI_(Windows)&diff=1949How to build VCMI (Windows)2015-08-01T07:50:40Z<p>Warmonger: /* Prerequisites */</p>
<hr />
<div>= Prerequisites =<br />
* Installed Heroes3 (can be bought for $10 at [http://www.gog.com/en/gamecard/heroes_of_might_and_magic_3_complete_edition/ gog.com])<br />
* Optionally, you can have also WoG or ERA installed.<br />
* IDE: <br />
** Microsoft Visual C++ 2013 Express for Desktop. It can be downloaded for free from [http://go.microsoft.com/?linkid=9832280&clcid=0x409 microsoft.com]. Higher editions of Visual Studio (Professional, Premium and Ultimate) are also supported. <br />
** Visual Studio 2012 is support is deprecated but still present.<br />
** Visual Studio 2010 is *not* supported and won't work.<br />
* Git client: <br />
** Visual Studio 2013 has built-in Git support. It isn't complete, but having most important Git commands integrated in IDE is very convienent. Update 2 brings a few handy features (blame).<br />
** Visual Studio 2012 [which you shouldn't use anyway] offers similar (though more limited) feature set through official plugin. [http://visualstudiogallery.msdn.microsoft.com/abafc7d6-dcaa-40f4-8a5e-d6724bdb980c microsoft.com]<br />
** Because Visual Studio support for Git is limited, I recommend having installed some else Git client, like TortoiseGit [http://code.google.com/p/tortoisegit/ code.google.com]<br />
* Libraries pack: [http://download.vcmi.eu/msvc-pack.7z download.vcmi.eu]. It contains includes and pre-built binaries of several libraries VCMI uses. You DO NOT need to download them separately, they're in the pack. The libraries included are:<br />
** SDL2<br />
** SDL2_image<br />
** SDL2_mixer<br />
** SDL2_TTF<br />
** [http://www.zlib.net/ zlib]<br />
* Boost libraries You can either build them using sources from [http://www.boost.org/users/download/ boost.org] (it's very simple, check the instruction below) or download the binaries from [http://sourceforge.net/projects/boost/files/boost-binaries/]. Depending on the version of Visual Studio you use, you'll need:<br />
** Boost 1.51 or (preferably) newer for Visual Studio 2012<br />
** Boost 1.56 or (preferably) newer for Visual Studio 2013<br />
<br />
= Preparing place =<br />
== Initial directory structure and libraries pack ==<br />
Create a directory for VCMI development, eg. C:\VCMI. Extract there libraries pack. It contains initial directory structure.<br />
<br />
It is recommended to avoid non-ascii characters in the path to your VCMI development folder. The folder should not be write-protected by system. <br />
Good location:<br />
* C:\VCMI<br />
Bad locations:<br />
* C:\Users\Michał\VCMI (non-ascii character)<br />
* C:\Program Files (x86)\VCMI (write protection)<br />
<br />
== Obtaining VCMI sources ==<br />
=== Using Visual Studio===<br />
* Start Visual Studio. Don't load any project.<br />
* Open Team Explorer panel.<br />
* Click the "Connect to Team Projects" icon at the Team Explorer's top bar. <br />
* Make sure that the "Local Git Repositories" node is expanded and click the "Clone" below it. <br />
* Enter the <br />
** repo address (first field): https://github.com/vcmi/vcmi )<br />
** the desired path for the repo to be placed. In our example this'll be: C:\VCMI\trunk<br />
* Click clone. Done.<br />
<br />
Now you have the local copy of the repository on the disk. It should appear in the Team Explorer under the "Local Git Repositories" section. Double click it and then select a solution to open.<br />
<br />
<br />
=== Using TortoiseGit client ===<br />
(The screenshots are not updated for the Git, however the process is pretty much the same.)<br />
<br />
Libraries pack contains default subfolder for VCMI sources named trunk. Right click it and select "Git Clone…" from context menu.<br />
<br />
[[File:trunk-menu.png|250px]]<br />
<br />
<br />
In the dialog type (or paste :]) https://github.com/vcmi/vcmi/ as URL of repository. You should not need to alter other options.<br />
<br />
[[File:Checkout.png|250px]]<br />
<br />
<br />
Hit OK and latest VCMI sources will be downloaded from the repository. Double click VCMI_VS11.sln file to open VCMI projects in Visual Studio.<br />
<br />
== Boost libraries ==<br />
VCMI depends on the Boost libraries. You can either build them on your own or download the installer.<br />
<br />
=== Using precompiled binaries ===<br />
Go to http://sourceforge.net/projects/boost/files/boost-binaries/ and enter the latest stable (not beta) build directory. Then download the appropriate version. If you are following the suggested workflow (Visual 2013, 32-bit VCMI build) this would be "boost_1_55_0-msvc-12.0-32.exe" (sic! msvc-12.0 means Visual 2013)<br />
<br />
Run the installer. If you chose the default install location, your paths to library are:<br />
* Include path: C:\local\boost_1_55_0<br />
* Library path: C:\local\boost_1_55_0\lib32-msvc-12.0<br />
<br />
<br />
=== Building from sources ===<br />
Boost libraries sources are distributed as an archive file containing single folder named like "boost_1_55_0". Let's assume that you've extracted the archive into C:\C++ folder.<br />
<br />
Instructions on how to build Boost are available in the [http://www.boost.org/doc/libs/release/more/getting_started/ libraries documentation]. As for 1.55.0 version it's as simple as typing in the '''VS2013 x86 Native Tools Command Prompt''' (look for it in your Start menu; the usual Command Prompt might work as well) the following:<br />
<pre>cd "C:\C++\boost_1_55_0"<br />
bootstrap<br />
b2 address-model=32 --toolset=msvc-12.0 --stagedir=./stage32</pre><br />
<br />
If you want to build 64-bit version of VCMI issue also<br />
<pre>b2 address-model=64 --toolset=msvc-12.0 --stagedir=./stage64</pre><br />
<br />
When build is complete (it may take some time), there should exist folder C:\C++\boost_1_55_0\stage32\lib containing numerous *.lib files. It's your Boost '''library directory'''. Your Boost '''include directory''' will be C:\C++\boost_1_55_0.<br />
<br />
== FFmpeg (after 0.96) ==<br />
<br />
Download dev and shared libraries from http://ffmpeg.zeranoe.com/builds/. Shared package contains .dll libraries (TODO: list which ones). Dev package contains sources.<br />
<br />
Set FFMPEG enviromental variable to Dev folder containing folder lib. http://www.rapidee.com/en/about is an easy tool for the job. You may need to restart MSMV for changes to take place.<br />
<br />
= Adjusting project files =<br />
== Adding Boost library folders ==<br />
All projects are aware of includes/ and libs/ directories in the main VCMI folder. Because libraries package uses them, the only remaining issue is giving IDE information where you have Boost library (the only library not included in the package).<br />
<br />
<br />
There are several alternative ways to do that:<br />
=== Global ===<br />
By following these steps, you'll enable Boost for all your projects in Visual Studio. If you wish to use Boost in your other projects without repeating this setup, this scenario is recommended. <br />
<br />
# Select "expert settings" mode (Tools -> Settings -> Expert Settings). This step may not be needed for Visual Studio editions other then Express.<br />
# Open Property Pages (View -> Property Pages).<br />
# In the property manager panel (that just showed up) expand any project and then expand any Win32 configuration within it (Debug or RD). It doesn't make any difference which project and configuration you'll pick, since they all share the one property sheet we're interested in.<br />
# Double click on Microsoft.Cpp.Win32.user (or r-click it -> Properties). Property window opens.<br />
# Select "VC++ Directories".<br />
# Click on "Include Directories" row. <br />
## A small button on the right appears. Click it and click on <Edit...>. <br />
## Click on "New Line" icon.<br />
## Click on "..." batton on the right of textbox that appeared.<br />
## Select your Boost '''include directory''' (eg. C:\C++\boost_1_55_0). Confirm with OK.<br />
## Check if your folder path correrctly appeared on the list. Click OK to save changes and dismiss window.<br />
# Click on "Library Directories" row. Repeat the steps described for "Include directories", just this time select Boost '''library directory''' (eg. C:\C++\boost_1_47_0\stage\lib). <br />
# Close the property page with OK.<br />
<br />
[[File:vc_dirs.png|250px]] [[File:include.png|250px]]<br />
<br />
=== For all VCMI projects ===<br />
Follow the instructions from previous section with one exception — in step 4. select VCMI_global property sheet.<br />
<br />
=== Individually per project ===<br />
Add Boost individually for each of the VCMI projects. This is not recommended, since it's most tiresome way.<br />
<br />
Open solution explorer. Right click on the project and select "Properties". Follow steps 5 — 8 from "Global" section. Repeat for each project.<br />
<br />
=== Put along with other libs ===<br />
Project files are pre-configured to use includes/ and libs/ subfolders (that are meant to be next to the trunk folder) during lookup for headers and libs. <br />
To make Boost visible to compiler, you can simply copy<br />
* all the boost .lib's (by default from boostfolder/boost_1_x_y/stage/lib) to the libs/ subfolder in your main VCMI directory <br />
* folder "boostfolder/boost_1_x_y/boost" to the includes/ subfolder. Be careful, you need to copy "boost" folder, not its contents!<br />
<br />
= Compiling =<br />
Now you should be able to successfully build VCMI. Select "Build solution" from "Build" menu or press F7. Wait until the compilation finishes.<br />
<br />
You should finally see <code class="inline">========== Build: 8 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========</code> message in the IDE output. Built VCMI binaries will be put in the solution folder (C:\VCMI\trunk in our example). If you want to run VCMI somewhere else, open each project properties and adjust "Output Directory" in "General Properties" tab.<br />
<br />
Remember that VCMI_client.exe, VCMI_client.dll and VCMI_server.exe need to be in the same directory and AI (GeniusAI.dll) must be in AI/ subfolder.<br />
<br />
= Running and debugging VCMI =<br />
After compilation you should have received new VCMI binaries in your trunk/ folder:<br />
* VCMI_client.exe<br />
* VCMI_server.exe<br />
* VCMI_lib.dll <br />
* GeniusAI.dll (in trunk/AI/ subfolder)<br />
* StupidAI.dll (in trunk/AI/ subfolder)<br />
<br />
== Running VCMI in a build place (recommended) ==<br />
=== VCMI files ===<br />
Extract package with latest VCMI release to the trunk folder. It contains some content (fonts, graphics, etc) that are not part of SVN repository.<br />
<strong>Do NOT overwrite</strong> anything. Files from repository are always most up-to-date and have priority over the ones released some time ago.<br />
If you overwrite any file from SVN you can always use Revert command from TortoiseSVN.<br />
<br />
=== H3 files ===<br />
VCMI needs files with content from H3.<br />
Copy:<br />
* From the game folder:<br />
** MP3 folder with its contents<br />
** binkw32.dll<br />
** smackw32.dll<br />
* From Data subfolder:<br />
** VIDEO.VID<br />
** Heroes3.snd<br />
** h3sprite.lod<br />
** h3bitmap.lod<br />
** H3ab_bmp.lod<br />
** H3ab_ahd.snd<br />
** H3ab_ahd.vid<br />
<br />
You'll also may want to copy some (or all) maps.<br />
<br />
VCMI should be smart enough to give meaningful error message when one of content files is missing. Check the console output or VCMI_client_log.txt if something goes wrong.<br />
<br />
=== Libraries ===<br />
Additionally, you need to copy all *.dll files from libraries pack (libs/x86) to the trunk folder (or your destination folder of choice).<br />
<br />
== Running VCMI in external folder ==<br />
Alternatively, you can simply replace binaries in existing VCMI installation with the ones you've built. <br />
In such case you should also replace .txt files in config/ directory with the ones from trunk (and any other relevant files that have changed in SVN).<br />
<br />
It's not very convenient because you need to copy files each time after build. To avoid that necessity you can change Output Directory in properties of all projects. Then binaries you built will be automatically put in the right place.<br />
However you would still need to remember about changes in config files. (Some script for copying them used as post-built event may be a good idea here)<br />
<br />
<br />
== Running / debugging VCMI from IDE ==<br />
Visual Studio offers several convenient commands to run / debug project. Before you can use them, you need to set Working Directory to <code class="inline">$(OutDir)</code> in project properties for VCMI_client.<br />
<br />
[[File:workingDir.png|250px]]<br />
<br />
Now you can start debugging by:<br />
* Using Start Debugging (F5) command - starts game with debugger attached<br />
* Using Step Over/Into (F10 or F11) command - starts game and stops at the beginning of main function, allowing line-by-line execution<br />
* Running VCMI normally and attaching debugger to its process<br />
<br />
To debug server, you need to attach to its process before it crashes; otherwise you will just see an information that server has crashed. No breakpoints in its code will be hit. However, in Visual Studio Professional or higher there is possibility to attach to server after is crashes.<br />
<br />
= Further help =<br />
If you need any further help, ask at [http://forum.vcmi.eu our forums].</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=TODO_list&diff=1826TODO list2015-04-09T07:55:20Z<p>Warmonger: /* Adventure AI */</p>
<hr />
<div>The list of all essential, optional and requested features alongside with the team members interested in them.<br />
= Heroes III =<br />
=== [[Adventure AI]] ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow]) <br />
* More functionality<br />
** Adventure map spells support<br />
** Resources management<br />
** Reasoning for town building merged with main engine<br />
** Survival instinct - AI defending towns, escaping etc.<br />
** Handling of all adventure map objects<br />
* Evaluating game objects<br />
** priority for visited objects over others sharing similiar function<br />
** Support for new objects possible to add via mods - use abstract interface to determine rewards etc.<br />
* Advanced strategy<br />
** Battle preparation (constructing suitable army & strategy)<br />
** Expert system for Bonuses ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=130 Warmonger])<br />
<br />
=== Online game ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow])<br />
<br />
=== [http://spreadsheets.google.com/ccc?key=pRhYM0YkAF9lIpLe4raNAWA Missing objects] ===<br />
* Creature abilities<br />
** [http://bugs.vcmi.eu/view.php?id=1231 Crystal Dragons]<br />
** [http://bugs.vcmi.eu/view.php?id=1230 Nomads]<br />
** [http://bugs.vcmi.eu/view.php?id=1371 Thieves]<br />
<br />
=== Main menu ===<br />
* Hall of Fame<br />
=== Audio ===<br />
* enviromental sounds<br />
<br />
= Modding =<br />
* Possibility for creatures to cast arbitrary spells, as in H4/H5<br />
=== Scripting system ===<br />
* Language support<br />
* Synchronising scripts in multiplayer<br />
=== Mod system ===<br />
* Adding new content<br />
** Adventure map objects<br />
** Battlefields<br />
[http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=0 Forum thread]<br />
<br />
=== Wog features ===<br />
* Mithril<br />
* ERM handling (Tow, Tow Dragon)<br />
<br />
= New features =<br />
* Support for other languages files ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=336 Ivan])<br />
* Support for multiple map levels<br />
* New map editor<br />
* Installer<br />
=== Online game ===<br />
* Simultaneous turns<br />
* Spectator mode<br />
* Dedicated server mode<br />
* [http://forum.vcmi.eu/viewtopic.php?t=264 Replays]<br />
=== Other platforms ===<br />
* Linux (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=112 forum thread])<br />
* Mac OS (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=439 forum thread])<br />
* Android (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=850 forum thread])<br />
* Haiku (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=310 forum thread])<br />
* Maemo (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=328 forum thread])<br />
* FreeBSD (<span style="color:yellow">'''Status unknown'''</span>)<br />
<br />
= New graphics =<br />
=== New menus project and graphics ===<br />
* New stack experience menu ([http://forum.vcmi.eu/viewtopic.php?t=376&start=0 forum thread])<br />
* New stack artifact dialog<br />
=== Improved support for high resolutions ===<br />
* Auto-adjust resolution<br />
* Moddable menus<br />
=== New players ===<br />
* More player color graphics<br />
* New menus<br />
=== 32-bit graphics ===<br />
=== 800 x 480 resolution ===<br />
Experimental version posted on our forum is available [http://forum.vcmi.eu/viewtopic.php?t=273 here].</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=TODO_list&diff=1825TODO list2015-04-07T15:28:51Z<p>Warmonger: /* Adventure AI */</p>
<hr />
<div>The list of all essential, optional and requested features alongside with the team members interested in them.<br />
= Heroes III =<br />
=== [[Adventure AI]] ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow]) <br />
* More functionality<br />
** Adventure map spells support<br />
** Resources management<br />
** Reasoning for town building merged with main engine<br />
** Survival instinct - AI defending towns, escaping etc.<br />
** Handling of all adventure map objects<br />
** Artifacts equip & exchange - it was implemented at some point, but code got lost (?)<br />
* Evaluating game objects<br />
** priority for visited objects over others sharing similiar function<br />
** Support for new objects possible to add via mods - use abstract interface to determine rewards etc.<br />
* Advanced strategy<br />
** Battle preparation (constructing suitable army & strategy)<br />
** Expert system for Bonuses ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=130 Warmonger])<br />
<br />
=== Online game ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow])<br />
<br />
=== [http://spreadsheets.google.com/ccc?key=pRhYM0YkAF9lIpLe4raNAWA Missing objects] ===<br />
* Creature abilities<br />
** [http://bugs.vcmi.eu/view.php?id=1231 Crystal Dragons]<br />
** [http://bugs.vcmi.eu/view.php?id=1230 Nomads]<br />
** [http://bugs.vcmi.eu/view.php?id=1371 Thieves]<br />
<br />
=== Main menu ===<br />
* Hall of Fame<br />
=== Audio ===<br />
* enviromental sounds<br />
<br />
= Modding =<br />
* Possibility for creatures to cast arbitrary spells, as in H4/H5<br />
=== Scripting system ===<br />
* Language support<br />
* Synchronising scripts in multiplayer<br />
=== Mod system ===<br />
* Adding new content<br />
** Adventure map objects<br />
** Battlefields<br />
[http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=0 Forum thread]<br />
<br />
=== Wog features ===<br />
* Mithril<br />
* ERM handling (Tow, Tow Dragon)<br />
<br />
= New features =<br />
* Support for other languages files ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=336 Ivan])<br />
* Support for multiple map levels<br />
* New map editor<br />
* Installer<br />
=== Online game ===<br />
* Simultaneous turns<br />
* Spectator mode<br />
* Dedicated server mode<br />
* [http://forum.vcmi.eu/viewtopic.php?t=264 Replays]<br />
=== Other platforms ===<br />
* Linux (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=112 forum thread])<br />
* Mac OS (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=439 forum thread])<br />
* Android (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=850 forum thread])<br />
* Haiku (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=310 forum thread])<br />
* Maemo (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=328 forum thread])<br />
* FreeBSD (<span style="color:yellow">'''Status unknown'''</span>)<br />
<br />
= New graphics =<br />
=== New menus project and graphics ===<br />
* New stack experience menu ([http://forum.vcmi.eu/viewtopic.php?t=376&start=0 forum thread])<br />
* New stack artifact dialog<br />
=== Improved support for high resolutions ===<br />
* Auto-adjust resolution<br />
* Moddable menus<br />
=== New players ===<br />
* More player color graphics<br />
* New menus<br />
=== 32-bit graphics ===<br />
=== 800 x 480 resolution ===<br />
Experimental version posted on our forum is available [http://forum.vcmi.eu/viewtopic.php?t=273 here].</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=TODO_list&diff=1824TODO list2015-04-06T11:22:25Z<p>Warmonger: /* Missing objects */</p>
<hr />
<div>The list of all essential, optional and requested features alongside with the team members interested in them.<br />
= Heroes III =<br />
=== [[Adventure AI]] ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow]) <br />
* More functionality<br />
** Adventure map spells support<br />
** Resources management<br />
** Reasoning for town building merged with main engine<br />
** Survival instinct - AI defending towns, escaping etc.<br />
** Handling of all adventure map objects<br />
* Evaluating game objects<br />
** priority for visited objects over others sharing similiar function<br />
** Support for new objects possible to add via mods - use abstract interface to determine rewards etc.<br />
* Advanced strategy<br />
** Battle preparation (constructing suitable army & strategy)<br />
** Expert system for Bonuses ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=130 Warmonger])<br />
<br />
=== Online game ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow])<br />
<br />
=== [http://spreadsheets.google.com/ccc?key=pRhYM0YkAF9lIpLe4raNAWA Missing objects] ===<br />
* Creature abilities<br />
** [http://bugs.vcmi.eu/view.php?id=1231 Crystal Dragons]<br />
** [http://bugs.vcmi.eu/view.php?id=1230 Nomads]<br />
** [http://bugs.vcmi.eu/view.php?id=1371 Thieves]<br />
<br />
=== Main menu ===<br />
* Hall of Fame<br />
=== Audio ===<br />
* enviromental sounds<br />
<br />
= Modding =<br />
* Possibility for creatures to cast arbitrary spells, as in H4/H5<br />
=== Scripting system ===<br />
* Language support<br />
* Synchronising scripts in multiplayer<br />
=== Mod system ===<br />
* Adding new content<br />
** Adventure map objects<br />
** Battlefields<br />
[http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=0 Forum thread]<br />
<br />
=== Wog features ===<br />
* Mithril<br />
* ERM handling (Tow, Tow Dragon)<br />
<br />
= New features =<br />
* Support for other languages files ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=336 Ivan])<br />
* Support for multiple map levels<br />
* New map editor<br />
* Installer<br />
=== Online game ===<br />
* Simultaneous turns<br />
* Spectator mode<br />
* Dedicated server mode<br />
* [http://forum.vcmi.eu/viewtopic.php?t=264 Replays]<br />
=== Other platforms ===<br />
* Linux (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=112 forum thread])<br />
* Mac OS (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=439 forum thread])<br />
* Android (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=850 forum thread])<br />
* Haiku (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=310 forum thread])<br />
* Maemo (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=328 forum thread])<br />
* FreeBSD (<span style="color:yellow">'''Status unknown'''</span>)<br />
<br />
= New graphics =<br />
=== New menus project and graphics ===<br />
* New stack experience menu ([http://forum.vcmi.eu/viewtopic.php?t=376&start=0 forum thread])<br />
* New stack artifact dialog<br />
=== Improved support for high resolutions ===<br />
* Auto-adjust resolution<br />
* Moddable menus<br />
=== New players ===<br />
* More player color graphics<br />
* New menus<br />
=== 32-bit graphics ===<br />
=== 800 x 480 resolution ===<br />
Experimental version posted on our forum is available [http://forum.vcmi.eu/viewtopic.php?t=273 here].</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Object_Format&diff=1823Object Format2015-04-05T13:19:14Z<p>Warmonger: /* Object template format */</p>
<hr />
<div>==Description==<br />
Full object consists from 3 parts:<br />
* Object group - set of objects that have similar behavior and share same identifier in H3 (towns, heroes, mines, etc)<br />
* Object type - object with fixed behavior but without fixed appearance. Multiple objects types may share same group<br />
* Object template - defines appearance of an object - image used to display it, its size & blockmap. These entries only describe templates that will be used when object is placed via map editor or generated by the game. When new object is created its starting appearance will be copied from template<br />
<br />
== Object group format ==<br />
<syntaxhighlight lang="javascript"><br />
<br />
{<br />
"myCoolObjectGroup":<br />
{<br />
//numeric ID, mandatory for h3/wog objects, shall be unique if not defined<br />
//used only for H3 objects, mods can not be used by mods<br />
"index":123,<br />
<br />
//Mandatory for new objects,<br />
// human readable name, localized <br />
//default for original objects from "OBJNAMES.TXT" <br />
"name": "My cool object",<br />
<br />
//defines C++/script class name that handles behavior of this object<br />
"handler" : "mine",<br />
<br />
// default values, will be merged with each type during loading<br />
"base" : { <object type format> },<br />
<br />
"types" : {<br />
<list of object types, see below><br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
== Object type format ==<br />
<syntaxhighlight lang="javascript"><br />
<br />
{<br />
"myCoolObject":<br />
{<br />
//numeric sub ID, mandatory for h3/wog objects, shall be unique if set<br />
//used only for H3 objects, can not be used by mods<br />
"index":123,<br />
<br />
// parameters that will be passed over to class that controls behavior of the object<br />
"producedResources" : "gold",<br />
"producedValue" : 1000<br />
<br />
// TODO: allow better selection of template for object, instead of just terrain<br />
// field describes how object template will be selected if there are multiple possiblities<br />
// exact behavior and format depends on object type<br />
"filter" : { ... },<br />
<br />
// Data for random map generator that describes how object should be placed.<br />
// If this entry is missing object will not be placed by RMG<br />
"rmg" : {<br />
// How valuable this object is, 1k = worthless, 20k = relic level<br />
"value" : 5000,<br />
<br />
// Optional, how many of such objects can be placed on map<br />
"mapLimit" : 25,<br />
<br />
// Optional, how many of such objects can be placed in one zone<br />
"zoneLimit" : 4,<br />
<br />
// Rarity of object, 10 = rare, 100 = common<br />
"rarity" : 50<br />
}<br />
<br />
// default values, will be merged with each template during loading<br />
// mostly needed to avoid redefining whole template to change 1-2 fields<br />
"base" : { <template format> },<br />
<br />
"templates" : {<br />
<templates description, see below><br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
== Object template format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"myCoolObjectTemplate" : <br />
{<br />
// resource ID of animation, relative to SPRITES directory (def file or json file)<br />
"animation":"DEFNAME.def",<br />
<br />
// directions from which hero can visit this object.<br />
// "+" means that object can be visited from that direction, or "-" othervice<br />
"visitableFrom" : [<br />
"---",<br />
"+++",<br />
"+++"<br />
],<br />
<br />
// passability of the object<br />
// 0=not visible, passable. Space symbol ' ' can be used as well<br />
// V=visible, passable<br />
// B=blocked, visible<br />
// H=hidden - blocked, not visible tile<br />
// A=activable, visible, passable depending on visitableFrom field<br />
// T=trigger - visiting the tile will trigger the object, tile is not visible (e.g. event)<br />
//top and left leading zeros are optional and in fact ignored<br />
//bottom, right corner of mask = bottom right corner of animation frame<br />
//animation can not be larger than size of mask<br />
"mask":[<br />
"00000000",<br />
"00000000",<br />
"00000000",<br />
"0000VVVV",<br />
"0000HBBB",<br />
"0000HHAT"<br />
],<br />
<br />
// optional; default or if explicitly set to null: all terrains except rock<br />
// allowed terrain types to place object too. Affects also RMG.<br />
// Note that map editor will still allow to place object on other terrains<br />
// allowed terrain types: "dirt", "sand", "grass", "snow", "swamp", "rough", "subterra", "lava", "water", "rock"<br />
"allowedTerrains":["dirt", "sand"],<br />
<br />
// TODO, default - empty<br />
// tags from object type are always present (???)<br />
// List of tags that can be used to locate object in map editor<br />
"tags":["dirt", "sand", "mine"],<br />
<br />
//zindex, defines order in which objects on same tile will be blit. optional, default is 0 <br />
//NOTE: legacy overlay objects has zindex = -1.000.000<br />
"zIndex": 0<br />
}<br />
}<br />
</syntaxhighlight><br />
{{Modding}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=Object_Format&diff=1822Object Format2015-04-05T13:18:57Z<p>Warmonger: /* Object template format */</p>
<hr />
<div>==Description==<br />
Full object consists from 3 parts:<br />
* Object group - set of objects that have similar behavior and share same identifier in H3 (towns, heroes, mines, etc)<br />
* Object type - object with fixed behavior but without fixed appearance. Multiple objects types may share same group<br />
* Object template - defines appearance of an object - image used to display it, its size & blockmap. These entries only describe templates that will be used when object is placed via map editor or generated by the game. When new object is created its starting appearance will be copied from template<br />
<br />
== Object group format ==<br />
<syntaxhighlight lang="javascript"><br />
<br />
{<br />
"myCoolObjectGroup":<br />
{<br />
//numeric ID, mandatory for h3/wog objects, shall be unique if not defined<br />
//used only for H3 objects, mods can not be used by mods<br />
"index":123,<br />
<br />
//Mandatory for new objects,<br />
// human readable name, localized <br />
//default for original objects from "OBJNAMES.TXT" <br />
"name": "My cool object",<br />
<br />
//defines C++/script class name that handles behavior of this object<br />
"handler" : "mine",<br />
<br />
// default values, will be merged with each type during loading<br />
"base" : { <object type format> },<br />
<br />
"types" : {<br />
<list of object types, see below><br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
== Object type format ==<br />
<syntaxhighlight lang="javascript"><br />
<br />
{<br />
"myCoolObject":<br />
{<br />
//numeric sub ID, mandatory for h3/wog objects, shall be unique if set<br />
//used only for H3 objects, can not be used by mods<br />
"index":123,<br />
<br />
// parameters that will be passed over to class that controls behavior of the object<br />
"producedResources" : "gold",<br />
"producedValue" : 1000<br />
<br />
// TODO: allow better selection of template for object, instead of just terrain<br />
// field describes how object template will be selected if there are multiple possiblities<br />
// exact behavior and format depends on object type<br />
"filter" : { ... },<br />
<br />
// Data for random map generator that describes how object should be placed.<br />
// If this entry is missing object will not be placed by RMG<br />
"rmg" : {<br />
// How valuable this object is, 1k = worthless, 20k = relic level<br />
"value" : 5000,<br />
<br />
// Optional, how many of such objects can be placed on map<br />
"mapLimit" : 25,<br />
<br />
// Optional, how many of such objects can be placed in one zone<br />
"zoneLimit" : 4,<br />
<br />
// Rarity of object, 10 = rare, 100 = common<br />
"rarity" : 50<br />
}<br />
<br />
// default values, will be merged with each template during loading<br />
// mostly needed to avoid redefining whole template to change 1-2 fields<br />
"base" : { <template format> },<br />
<br />
"templates" : {<br />
<templates description, see below><br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
== Object template format ==<br />
<syntaxhighlight lang="javascript"><br />
{<br />
"myCoolObjectTemplate" : <br />
{<br />
// resource ID of animation, relative to SPRITES directory (def file or json file)<br />
"animation":"DEFNAME.def",<br />
<br />
// directions from which hero can visit this object.<br />
// "+" means that object can be visited from that direction, or "-" othervice<br />
"visitableFrom" : [<br />
"---",<br />
"+++",<br />
"+++"<br />
],<br />
<br />
// passability of the object<br />
// 0=not visible, passable. Space symbol ' ' can be used as well<br />
// V=visible, passable<br />
// B=blocked, visible<br />
// H=hidden - blocked, not visible tile<br />
// A=activable, visible, passable depending on visitableFrom field<br />
// T=trigger - visiting the tile will trigger the object, tile is not visible (e.g. event)<br />
//top and left leading zeros are optional and in fact ignored<br />
//bottom, right corner of mask = bottom right corner of animation frame<br />
//animation can not be larger than size of mask<br />
"mask":[<br />
"00000000",<br />
"00000000",<br />
"00000000",<br />
"0000VVVV",<br />
"0000HBBB",<br />
"0000HHAT"<br />
],<br />
<br />
// optional; default or if explicitly set to null: all terrains except rock<br />
// allowed terrain types to place object too. Affects also RMG.<br />
// Note that map editor will still allow to place object on other terrains<br />
//allowed terrain types: "dirt", "sand", "grass", "snow", "swamp", "rough", "subterra", "lava", "water", "rock"<br />
"allowedTerrains":["dirt", "sand"],<br />
<br />
// TODO, default - empty<br />
// tags from object type are always present (???)<br />
// List of tags that can be used to locate object in map editor<br />
"tags":["dirt", "sand", "mine"],<br />
<br />
//zindex, defines order in which objects on same tile will be blit. optional, default is 0 <br />
//NOTE: legacy overlay objects has zindex = -1.000.000<br />
"zIndex": 0<br />
}<br />
}<br />
</syntaxhighlight><br />
{{Modding}}</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=TODO_list&diff=1820TODO list2015-03-11T08:28:47Z<p>Warmonger: /* Missing objects */</p>
<hr />
<div>The list of all essential, optional and requested features alongside with the team members interested in them.<br />
= Heroes III =<br />
=== [[Adventure AI]] ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow]) <br />
* More functionality<br />
** Adventure map spells support<br />
** Resources management<br />
** Reasoning for town building merged with main engine<br />
** Survival instinct - AI defending towns, escaping etc.<br />
** Handling of all adventure map objects<br />
* Evaluating game objects<br />
** priority for visited objects over others sharing similiar function<br />
** Support for new objects possible to add via mods - use abstract interface to determine rewards etc.<br />
* Advanced strategy<br />
** Battle preparation (constructing suitable army & strategy)<br />
** Expert system for Bonuses ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=130 Warmonger])<br />
<br />
=== Online game ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow])<br />
<br />
=== [http://spreadsheets.google.com/ccc?key=pRhYM0YkAF9lIpLe4raNAWA Missing objects] ===<br />
* [http://bugs.vcmi.eu/view.php?id=1232 Spells]<br />
** Earthquake <br />
* Creature abilities<br />
** [http://bugs.vcmi.eu/view.php?id=1231 Crystal Dragons]<br />
** [http://bugs.vcmi.eu/view.php?id=1230 Nomads]<br />
** [http://bugs.vcmi.eu/view.php?id=1371 Thieves]<br />
<br />
=== Main menu ===<br />
* Hall of Fame<br />
=== Audio ===<br />
* enviromental sounds<br />
<br />
= Modding =<br />
* Possibility for creatures to cast arbitrary spells, as in H4/H5<br />
=== Scripting system ===<br />
* Language support<br />
* Synchronising scripts in multiplayer<br />
=== Mod system ===<br />
* Adding new content<br />
** Adventure map objects<br />
** Battlefields<br />
[http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=0 Forum thread]<br />
<br />
=== Wog features ===<br />
* Mithril<br />
* ERM handling (Tow, Tow Dragon)<br />
<br />
= New features =<br />
* Support for other languages files ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=336 Ivan])<br />
* Support for multiple map levels<br />
* New map editor<br />
* Installer<br />
=== Online game ===<br />
* Simultaneous turns<br />
* Spectator mode<br />
* Dedicated server mode<br />
* [http://forum.vcmi.eu/viewtopic.php?t=264 Replays]<br />
=== Other platforms ===<br />
* Linux (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=112 forum thread])<br />
* Mac OS (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=439 forum thread])<br />
* Android (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=850 forum thread])<br />
* Haiku (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=310 forum thread])<br />
* Maemo (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=328 forum thread])<br />
* FreeBSD (<span style="color:yellow">'''Status unknown'''</span>)<br />
<br />
= New graphics =<br />
=== New menus project and graphics ===<br />
* New stack experience menu ([http://forum.vcmi.eu/viewtopic.php?t=376&start=0 forum thread])<br />
* New stack artifact dialog<br />
=== Improved support for high resolutions ===<br />
* Auto-adjust resolution<br />
* Moddable menus<br />
=== New players ===<br />
* More player color graphics<br />
* New menus<br />
=== 32-bit graphics ===<br />
=== 800 x 480 resolution ===<br />
Experimental version posted on our forum is available [http://forum.vcmi.eu/viewtopic.php?t=273 here].</div>Warmongerhttps://wiki.vcmi.eu/index.php?title=TODO_list&diff=1819TODO list2015-03-11T08:28:28Z<p>Warmonger: /* Adventure AI */</p>
<hr />
<div>The list of all essential, optional and requested features alongside with the team members interested in them.<br />
= Heroes III =<br />
=== [[Adventure AI]] ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow]) <br />
* More functionality<br />
** Adventure map spells support<br />
** Resources management<br />
** Reasoning for town building merged with main engine<br />
** Survival instinct - AI defending towns, escaping etc.<br />
** Handling of all adventure map objects<br />
* Evaluating game objects<br />
** priority for visited objects over others sharing similiar function<br />
** Support for new objects possible to add via mods - use abstract interface to determine rewards etc.<br />
* Advanced strategy<br />
** Battle preparation (constructing suitable army & strategy)<br />
** Expert system for Bonuses ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=130 Warmonger])<br />
<br />
=== Online game ===<br />
([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=2 Tow])<br />
<br />
=== [http://spreadsheets.google.com/ccc?key=pRhYM0YkAF9lIpLe4raNAWA Missing objects] ===<br />
* [http://bugs.vcmi.eu/view.php?id=1232 Spells]<br />
** Visions <br />
** View Earth <br />
** Disguise <br />
** View Air <br />
** Earthquake <br />
* Creature abilities<br />
** [http://bugs.vcmi.eu/view.php?id=1231 Crystal Dragons]<br />
** [http://bugs.vcmi.eu/view.php?id=1230 Nomads]<br />
** [http://bugs.vcmi.eu/view.php?id=1371 Thieves]<br />
<br />
=== Main menu ===<br />
* Hall of Fame<br />
=== Audio ===<br />
* enviromental sounds<br />
<br />
= Modding =<br />
* Possibility for creatures to cast arbitrary spells, as in H4/H5<br />
=== Scripting system ===<br />
* Language support<br />
* Synchronising scripts in multiplayer<br />
=== Mod system ===<br />
* Adding new content<br />
** Adventure map objects<br />
** Battlefields<br />
[http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=0 Forum thread]<br />
<br />
=== Wog features ===<br />
* Mithril<br />
* ERM handling (Tow, Tow Dragon)<br />
<br />
= New features =<br />
* Support for other languages files ([http://forum.vcmi.eu/profile.php?mode=viewprofile&u=336 Ivan])<br />
* Support for multiple map levels<br />
* New map editor<br />
* Installer<br />
=== Online game ===<br />
* Simultaneous turns<br />
* Spectator mode<br />
* Dedicated server mode<br />
* [http://forum.vcmi.eu/viewtopic.php?t=264 Replays]<br />
=== Other platforms ===<br />
* Linux (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=112 forum thread])<br />
* Mac OS (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=439 forum thread])<br />
* Android (<span style="color:green">'''Supported'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=850 forum thread])<br />
* Haiku (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=310 forum thread])<br />
* Maemo (<span style="color:yellow">'''Status unknown'''</span>, [http://forum.vcmi.eu/viewtopic.php?t=328 forum thread])<br />
* FreeBSD (<span style="color:yellow">'''Status unknown'''</span>)<br />
<br />
= New graphics =<br />
=== New menus project and graphics ===<br />
* New stack experience menu ([http://forum.vcmi.eu/viewtopic.php?t=376&start=0 forum thread])<br />
* New stack artifact dialog<br />
=== Improved support for high resolutions ===<br />
* Auto-adjust resolution<br />
* Moddable menus<br />
=== New players ===<br />
* More player color graphics<br />
* New menus<br />
=== 32-bit graphics ===<br />
=== 800 x 480 resolution ===<br />
Experimental version posted on our forum is available [http://forum.vcmi.eu/viewtopic.php?t=273 here].</div>Warmonger