File: Bonus_Limiters.md

package info (click to toggle)
vcmi 1.6.5%2Bdfsg-2
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid, trixie
  • size: 32,060 kB
  • sloc: cpp: 238,971; python: 265; sh: 224; xml: 157; ansic: 78; objc: 61; makefile: 49
file content (125 lines) | stat: -rw-r--r-- 1,795 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Bonus Limiters

## Predefined Limiters

The limiters take no parameters:

- SHOOTER_ONLY
- DRAGON_NATURE
- IS_UNDEAD
- CREATURE_NATIVE_TERRAIN
- CREATURE_FACTION
- SAME_FACTION
- CREATURES_ONLY
- OPPOSITE_SIDE

Example:

```json
"limiters" : [ "SHOOTER_ONLY" ]
```

## Customizable Limiters

### HAS_ANOTHER_BONUS_LIMITER

Parameters:

- Bonus type
- (optional) bonus subtype
- (optional) bonus sourceType and sourceId in struct
- example: (from Adele's bless):

```json
	"limiters" : [
		{
			"type" : "HAS_ANOTHER_BONUS_LIMITER",
			"parameters" : [
				"GENERAL_DAMAGE_PREMY",
				1,
				{
					"type" : "SPELL_EFFECT",
					"id" : "spell.bless"
				}
				]
		}
	],
```

### CREATURE_TYPE_LIMITER

Parameters:

- Creature id (string)
- (optional) include upgrades - default is false

### CREATURE_ALIGNMENT_LIMITER

Parameters:

- Alignment identifier

### CREATURE_LEVEL_LIMITER

If parameters is empty, level limiter works as CREATURES_ONLY limiter

Parameters:

- Minimal level
- Maximal level

### FACTION_LIMITER

Parameters:

- Faction identifier

### CREATURE_TERRAIN_LIMITER

Parameters:

- Terrain identifier

Example:

```json
"limiters": [ {
	"type":"CREATURE_TYPE_LIMITER",
	"parameters": [ "angel", true ]
} ],
```

```json
"limiters" : [ {
	"type" : "CREATURE_TERRAIN_LIMITER",
	"parameters" : ["sand"]
} ]
```

### UNIT_ON_HEXES

Parameters:

- List of affected battlefield hexes

## Aggregate Limiters

The following limiters must be specified as the first element of a list,
and operate on the remaining limiters in that list:

- allOf (default when no aggregate limiter is specified)
- anyOf
- noneOf

Example:

```json
"limiters" : [
    "noneOf",
    "IS_UNDEAD",
    {
        "type" : "HAS_ANOTHER_BONUS_LIMITER",
        "parameters" : [ "SIEGE_WEAPON" ]
    }
]
```