-
-
Notifications
You must be signed in to change notification settings - Fork 988
/
abilities.cfg
146 lines (142 loc) · 3.39 KB
/
abilities.cfg
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#define BASED_ON_SPECIAL NAME
[tag]
name={NAME}
max=infinite
super="units/unit_type/attack/specials/" + {NAME}
{FILTER_TAG "filter_student" unit ()}
[/tag]
#enddef
[tag]
# Using invalid characters to ensure it doesn't match a real tag.
name="~generic~"
max=0
{SIMPLE_KEY name t_string}
{SIMPLE_KEY female_name t_string}
{SIMPLE_KEY name_inactive t_string}
{SIMPLE_KEY female_name_inactive t_string}
{SIMPLE_KEY description t_string}
{SIMPLE_KEY description_inactive t_string}
{SIMPLE_KEY affect_self bool}
{SIMPLE_KEY affect_allies bool}
{SIMPLE_KEY affect_enemies bool}
{SIMPLE_KEY cumulative bool}
{SIMPLE_KEY id string}
{FILTER_TAG "filter" unit ()}
[tag]
name="affect_adjacent"
[key]
name="adjacent"
type="dir_list"
[/key]
{FILTER_TAG "filter" unit ()}
[/tag]
{FILTER_TAG "filter_self" unit ()}
{FILTER_TAG "filter_adjacent" adjacent ()}
{FILTER_TAG "filter_adjacent_location" adjacent_location ()}
{FILTER_TAG "filter_base_value" base_value ()}
{WML_MERGE_KEYS}
[/tag]
[tag]
name="heals"
max=infinite
super="units/unit_type/abilities/~generic~"
{SIMPLE_KEY value f_int}
{SIMPLE_KEY add f_int}
{SIMPLE_KEY sub f_int}
{SIMPLE_KEY poison string} # TODO: Enum
[/tag]
[tag]
name="regenerate"
max=infinite
super="units/unit_type/abilities/heals"
[/tag]
[tag]
# Using invalid characters to ensure it doesn't match a real tag.
name="~value~"
max=0
super="units/unit_type/abilities/~generic~"
{SIMPLE_KEY value f_int}
{SIMPLE_KEY max_value f_int}
{SIMPLE_KEY add f_int}
{SIMPLE_KEY sub f_int}
{SIMPLE_KEY multiply f_int}
{SIMPLE_KEY divide f_int}
{SIMPLE_KEY apply_to string}
{SIMPLE_KEY active_on ability_context}
[/tag]
# Defense not currently supported though.
# May never be? Not sure
[tag]
name="defense"
max=infinite
super="units/unit_type/abilities/~value~"
[/tag]
[tag]
name="resistance"
max=infinite
super="units/unit_type/abilities/~value~"
{FILTER_TAG "filter_weapon" weapon ()}
{FILTER_TAG "filter_second_weapon" weapon ()}
[/tag]
[tag]
name="leadership"
max=infinite
super="units/unit_type/abilities/~generic~"
{SIMPLE_KEY value f_int}
{FILTER_TAG "filter_weapon" weapon ()}
{FILTER_TAG "filter_second_weapon" weapon ()}
[/tag]
[tag]
name="illuminates"
max=infinite
super="units/unit_type/abilities/~generic~"
{SIMPLE_KEY value f_int}
{SIMPLE_KEY max_value f_int}
{SIMPLE_KEY min_value f_int}
[/tag]
[tag]
name="hides"
max=infinite
super="units/unit_type/abilities/~generic~"
{SIMPLE_KEY alert t_string}
[/tag]
[tag]
name="teleport"
max=infinite
super="units/unit_type/abilities/~generic~"
[tag]
name="tunnel"
min=1
{SIMPLE_KEY id string}
{FILTER_TAG "filter" unit min=1}
{FILTER_TAG "source" location min=1}
{FILTER_TAG "target" location min=1}
{DEFAULT_KEY bidirectional bool yes}
{DEFAULT_KEY always_visible bool no}
{DEFAULT_KEY allow_vision bool yes}
{DEFAULT_KEY pass_allied_units bool yes}
[/tag]
[/tag]
[tag]
name="chance_to_hit"
max=infinite
super="units/unit_type/abilities/~value~"
{FILTER_TAG "filter_opponent" unit ()}
[/tag]
[tag]
name="firststrike"
max=infinite
super="units/unit_type/abilities/~generic~"
{FILTER_TAG "filter_second_weapon" weapon ()}
[/tag]
{BASED_ON_SPECIAL "attacks"}
{BASED_ON_SPECIAL "chance_to_hit"}
{BASED_ON_SPECIAL "damage"}
{BASED_ON_SPECIAL "drains"}
{BASED_ON_SPECIAL "berserk"}
[tag]
name="*"
max=infinite
super="units/unit_type/abilities/~generic~"
[/tag]
#undef BASED_ON_SPECIAL