mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-21 21:17:49 +02:00
176 lines
5.3 KiB
Markdown
176 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.
|
|
```jsonc
|
|
{
|
|
"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)
|
|
|
|
``` jsonc
|
|
{
|
|
/// 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 } ]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
```
|