mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-19 21:10:12 +02:00
Looks like website only recognizes javascript & json, and is not aware of jsonc or json5. Will result in small regression on Github web view - comments will show up as red (since comments are not part of json format), but syntax highlight would work both on website and on Github. Alternative is using javascript for syntax highlight, however syntax highlighter for json looks better on both website and Github (since it uses separate highlighting for json keys, separate from strings in values)
179 lines
5.3 KiB
Markdown
179 lines
5.3 KiB
Markdown
# Creature Bank
|
|
|
|
Reward types for clearing creature bank are limited to resources, creatures, artifacts and spell.
|
|
Format of rewards is same as in [Rewardable Objects](Rewardable.md)
|
|
|
|
Deprecated in 1.6. Please use [Rewardable Objects](Rewardable.md) instead. See Conversion from 1.5 format section below for help with migration
|
|
|
|
### Example
|
|
|
|
This example defines a rewardable object with functionality similar of H3 creature bank.
|
|
See [Rewardable Objects](Rewardable.md) for detailed documentation of these properties.
|
|
|
|
```json
|
|
{
|
|
"name" : "Cyclops Stockpile",
|
|
|
|
// Generic message to ask player whether he wants to attack a creature bank, can be replaced with custom string
|
|
"onGuardedMessage" : 32,
|
|
|
|
// Generic message to inform player that bank was already cleared
|
|
"onVisitedMessage" : 33,
|
|
|
|
// As an alternative to a generic message you can define 'reward'
|
|
// that will be granted for visiting already cleared bank, such as morale debuff
|
|
"onVisited" : [
|
|
{
|
|
"message" : 123, // "Such a despicable act reduces your army's morale."
|
|
"bonuses" : [ { "type" : "MORALE", "val" : -1, "duration" : "ONE_BATTLE", "description" : 99 } ]
|
|
}
|
|
],
|
|
"visitMode" : "once", // Banks never reset
|
|
// Defines layout of guards. To emulate H3 logic,
|
|
// use 'creatureBankNarrow' if guardian units are narrow (1-tile units)
|
|
// or, 'creatureBankWide' if defenders are double-hex units
|
|
"guardsLayout" : "creatureBankNarrow",
|
|
"rewards" : [
|
|
{
|
|
"message" : 34,
|
|
"appearChance" : { "min" : 0, "max" : 30 },
|
|
"guards" : [
|
|
{ "amount" : 4, "type" : "cyclop" },
|
|
{ "amount" : 4, "type" : "cyclop" },
|
|
{ "amount" : 4, "type" : "cyclop", "upgradeChance" : 50 },
|
|
{ "amount" : 4, "type" : "cyclop" },
|
|
{ "amount" : 4, "type" : "cyclop" }
|
|
],
|
|
"resources" : {
|
|
"gold" : 4000
|
|
}
|
|
},
|
|
{
|
|
"message" : 34,
|
|
"appearChance" : { "min" : 30, "max" : 60 },
|
|
"guards" : [
|
|
{ "amount" : 6, "type" : "cyclop" },
|
|
{ "amount" : 6, "type" : "cyclop" },
|
|
{ "amount" : 6, "type" : "cyclop", "upgradeChance" : 50 },
|
|
{ "amount" : 6, "type" : "cyclop" },
|
|
{ "amount" : 6, "type" : "cyclop" }
|
|
],
|
|
"resources" : {
|
|
"gold" : 6000
|
|
}
|
|
},
|
|
{
|
|
"message" : 34,
|
|
"appearChance" : { "min" : 60, "max" : 90 },
|
|
"guards" : [
|
|
{ "amount" : 8, "type" : "cyclop" },
|
|
{ "amount" : 8, "type" : "cyclop" },
|
|
{ "amount" : 8, "type" : "cyclop", "upgradeChance" : 50 },
|
|
{ "amount" : 8, "type" : "cyclop" },
|
|
{ "amount" : 8, "type" : "cyclop" }
|
|
],
|
|
"resources" : {
|
|
"gold" : 8000
|
|
}
|
|
},
|
|
{
|
|
"message" : 34,
|
|
"appearChance" : { "min" : 90, "max" : 100 },
|
|
"guards" : [
|
|
{ "amount" : 10, "type" : "cyclop" },
|
|
{ "amount" : 10, "type" : "cyclop" },
|
|
{ "amount" : 10, "type" : "cyclop", "upgradeChance" : 50 },
|
|
{ "amount" : 10, "type" : "cyclop" },
|
|
{ "amount" : 10, "type" : "cyclop" }
|
|
],
|
|
"resources" : {
|
|
"gold" : 10000
|
|
}
|
|
}
|
|
]
|
|
},
|
|
```
|
|
|
|
### Conversion from 1.5 format
|
|
|
|
This is a list of changes that needs to be done to bank config to migrate it to 1.6 system. See [Rewardable Objects](Rewardable.md) documentation for description of new fields
|
|
|
|
- If your object type has defined `handler`, change its value from `bank` to `configurable`
|
|
|
|
- If your object has non-zero `resetDuration`, replace with `resetParameters` entry
|
|
|
|
- For each possible level, replace `chance` with `appearChance` entry
|
|
|
|
- If you have `combat_value` or `field` entries inside 'reward' - remove them. These fields are unused in both 1.5 and in 1.6
|
|
|
|
- Rename `levels` entry to `rewards`
|
|
|
|
- Add property `"visitMode" : "once"`
|
|
- Add property `"onGuardedMessage" : 119`, optionally - replace with custom message for object visit
|
|
- Add property `"onVisitedMessage" : 33`, optionally - custom message or morale debuff
|
|
- Add property `"message" : 34`, to every level of your reward, optionally - replace with custom message
|
|
|
|
### Old format (1.5 or earlier)
|
|
|
|
```json
|
|
{
|
|
/// If true, battle setup will be like normal - Attacking player on the left, enemy on the right
|
|
"regularUnitPlacement" : true,
|
|
/// If true, bank placed on water will be visitable from coast (Shipwreck)
|
|
"coastVisitable" : true,
|
|
/// List of levels of this bank. On map loading, one of them will be randomly assigned to bank.
|
|
"levels": [
|
|
{
|
|
/// Chance for this level to be active
|
|
"chance": 30,
|
|
|
|
/// Description of guards, stacks will be ordered
|
|
/// on battlefield according to this scheme:
|
|
/// 4 7 1
|
|
///
|
|
/// 6 5
|
|
///
|
|
/// 3 2
|
|
/// Possible fields:
|
|
/// amount - size of stack
|
|
/// type - string ID of creature for this stack
|
|
/// upgradeChance - chance (in percent) for this stack to be upgraded
|
|
"guards": [
|
|
{ "amount": 4, "type": "cyclop" },
|
|
{ "amount": 4, "type": "cyclop" },
|
|
{ "amount": 4, "type": "cyclop", "upgradeChance": 50 },
|
|
{ "amount": 4, "type": "cyclop" },
|
|
{ "amount": 4, "type": "cyclop" }
|
|
],
|
|
|
|
/// Description of rewards granted for clearing bank
|
|
"reward" : {
|
|
|
|
/// Granted resources
|
|
"resources": {
|
|
"wood" : 4,
|
|
"mercury" : 4,
|
|
"ore" : 4,
|
|
"sulfur" : 4,
|
|
"crystal" : 4,
|
|
"gems" : 4,
|
|
"gold" : 0
|
|
},
|
|
|
|
/// Granted creatures, same format as guards
|
|
"creatures" : [
|
|
{ "amount": 4, "type": "wyvern" }
|
|
],
|
|
|
|
/// List of random artifacts
|
|
"artifacts": [ { "class" : "TREASURE" } ]
|
|
|
|
/// List of spells
|
|
"spells" : [ { "level" : 5 } ]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
```
|