0e95c856afe245f64c8b81390e65ed72f2b816e8
[naja.git] / data / location_decks / standard.yaml
1 description: "Standard location deck."
2
3 # This field is ignored, but it's a useful place to put some action definitions
4 # we can reference later.
5 _action_definitions:
6   # No-colour actions.
7   - &SET-BITS-DEFAULT
8     action_class: 'LoseHealthOrMSBAndSetBits'
9     required_bits: []
10   - &GAIN-HEALTH-DEFAULT
11     action_class: 'GainHealthAndClearBitsOrMSB'
12     required_bits: []
13   - &TOGGLE-BITS-DEFAULT
14     action_class: 'ToggleBits'
15     required_bits: []
16   - &TOGGLE-BITS-HARM-DEFAULT
17     action_class: 'ToggleBitsAndHarm'
18     required_bits: []
19   - &BAD-DEFAULT
20     action_class: 'LoseHealthOrMSB'
21     required_bits: []
22   - &SET-MSB-DEFAULT
23     action_class: 'GainMSB'
24     required_bits: []
25
26   - &KNIGHT-MSB-DEFAULT
27     action_class: 'AllowChessMoveIfMSB'
28     required_bits: []
29     data: {'chesspiece': KNIGHT}
30   - &CASTLE-MSB-DEFAULT
31     action_class: 'AllowChessMoveIfMSB'
32     required_bits: []
33     data: {'chesspiece': CASTLE}
34   - &BISHOP-MSB-DEFAULT
35     action_class: 'AllowChessMoveIfMSB'
36     required_bits: []
37     data: {'chesspiece': BISHOP}
38
39   # One-colour actions.
40   - &SET-BITS-R
41     action_class: 'SetBits'
42     required_bits: [RED]
43   - &SET-BITS-G
44     action_class: 'SetBits'
45     required_bits: [GREEN]
46   - &SET-BITS-B
47     action_class: 'SetBits'
48     required_bits: [BLUE]
49
50   - &SHIFT-N
51     action_class: 'ShiftLocations'
52     required_bits: [BLUE]
53     data: {'direction': NORTH}
54   - &SHIFT-S
55     action_class: 'ShiftLocations'
56     required_bits: [BLUE]
57     data: {'direction': SOUTH}
58   - &SHIFT-E
59     action_class: 'ShiftLocations'
60     required_bits: [GREEN]
61     data: {'direction': EAST}
62   - &SHIFT-W
63     action_class: 'ShiftLocations'
64     required_bits: [GREEN]
65     data: {'direction': WEST}
66
67   - &ROT-CW
68     action_class: 'RotateLocations'
69     required_bits: [RED]
70     data: {'rot_direction': CLOCKWISE}
71   - &ROT-CCW
72     action_class: 'RotateLocations'
73     required_bits: [RED]
74     data: {'rot_direction': ANTICLOCKWISE}
75
76   # Two-colour actions.
77   - &KNIGHT-MOVE
78     action_class: 'AllowChessMove'
79     required_bits: [RED, GREEN]
80     data: {'chesspiece': KNIGHT}
81   - &CASTLE-MOVE
82     action_class: 'AllowChessMove'
83     required_bits: [RED, BLUE]
84     data: {'chesspiece': CASTLE}
85   - &BISHOP-MOVE
86     action_class: 'AllowChessMove'
87     required_bits: [GREEN, BLUE]
88     data: {'chesspiece': BISHOP}
89
90   - &HEAL-RG
91     action_class: 'GainHealth'
92     required_bits: [RED, GREEN]
93   - &HEAL-RB
94     action_class: 'GainHealth'
95     required_bits: [RED, BLUE]
96
97   - &BITSHIFT-L
98     action_class: 'ShiftBits'
99     required_bits: [RED, BLUE]
100     data: {
101       'direction': 'left',
102       'shift': 1,
103     }
104   - &BITSHIFT-R
105     action_class: 'ShiftBits'
106     required_bits: [GREEN, BLUE]
107     data: {
108       'direction': 'right',
109       'shift': 1,
110     }
111
112   # Three-colour actions.
113   - &ACQUIRE-WIN-TOKEN
114     action_class: 'AcquireWinToken'
115     required_bits: [RED, GREEN, BLUE]
116
117 # This field is ignored, but it's a useful place to put some card definitions
118 # we can reference later.
119 _card_definitions:
120   - &WIN-CARD-1
121     card_name: 'win1'
122     max_number: 1
123     actions:
124       - *ACQUIRE-WIN-TOKEN
125   - &WIN-CARD-2
126     card_name: 'win2'
127     max_number: 2
128     actions:
129       - *BAD-DEFAULT
130       - *ACQUIRE-WIN-TOKEN
131   - &WIN-CARD-3
132     card_name: 'win3'
133     max_number: 1
134     actions:
135       - *SET-BITS-DEFAULT
136       - *ACQUIRE-WIN-TOKEN
137
138   - &KNIGHT-AND-SET
139     card_name: 'knight_set'
140     actions:
141       - *SET-MSB-DEFAULT
142       - *SET-BITS-B
143       - *KNIGHT-MOVE
144   - &CASTLE-AND-SET
145     card_name: 'castle_set'
146     actions:
147       - *SET-MSB-DEFAULT
148       - *SET-BITS-G
149       - *CASTLE-MOVE
150   - &BISHOP-AND-SET
151     card_name: 'bishop_set'
152     actions:
153       - *SET-MSB-DEFAULT
154       - *SET-BITS-R
155       - *BISHOP-MOVE
156
157   - &BISHOP-SET-KNIGHT
158     card_name: 'bishop_set_knight'
159     actions:
160       - *BISHOP-MSB-DEFAULT
161       - *SET-BITS-B
162       - *KNIGHT-MOVE
163   - &KNIGHT-SET-CASTLE
164     card_name: 'knight_set_castle'
165     actions:
166       - *KNIGHT-MSB-DEFAULT
167       - *SET-BITS-G
168       - *CASTLE-MOVE
169   - &CASTLE-SET-BISHOP
170     card_name: 'castle_set_bishop'
171     actions:
172       - *CASTLE-MSB-DEFAULT
173       - *SET-BITS-R
174       - *BISHOP-MOVE
175
176   - &TOGGLE-RG-R
177     card_name: 'toggle-rg-r'
178     bits: [RED, GREEN]  # Colour-blind robot!
179     actions:
180       - *GAIN-HEALTH-DEFAULT
181       - action_class: 'ToggleBits'
182         required_bits: [RED]
183       - action_class: 'SetBits'
184         required_bits: [GREEN, BLUE]
185   - &TOGGLE-RG-G
186     card_name: 'toggle-rg-g'
187     bits: [RED, GREEN]  # Colour-blind robot!
188     actions:
189       - *GAIN-HEALTH-DEFAULT
190       - action_class: 'ToggleBits'
191         required_bits: [GREEN]
192       - action_class: 'SetBits'
193         required_bits: [RED, BLUE]
194
195   - &SHIFT-N-AND-HEAL
196     card_name: 'shift-n-heal'
197     actions:
198       - *TOGGLE-BITS-DEFAULT
199       - *SHIFT-N
200       - *HEAL-RG
201   - &SHIFT-S-AND-HEAL
202     card_name: 'shift-s-heal'
203     actions:
204       - *TOGGLE-BITS-DEFAULT
205       - *SHIFT-S
206       - *HEAL-RG
207   - &SHIFT-E-AND-HEAL
208     card_name: 'shift-e-heal'
209     actions:
210       - *TOGGLE-BITS-DEFAULT
211       - *SHIFT-E
212       - *HEAL-RB
213   - &SHIFT-W-AND-HEAL
214     card_name: 'shift-w-heal'
215     actions:
216       - *TOGGLE-BITS-DEFAULT
217       - *SHIFT-W
218       - *HEAL-RB
219
220   - &SHIFT-N-AND-HARM
221     card_name: 'shift-n-harm'
222     actions:
223       - *TOGGLE-BITS-HARM-DEFAULT
224       - *SHIFT-N
225       - *HEAL-RG
226   - &SHIFT-S-AND-HARM
227     card_name: 'shift-s-harm'
228     actions:
229       - *TOGGLE-BITS-HARM-DEFAULT
230       - *SHIFT-S
231       - *HEAL-RG
232   - &SHIFT-E-AND-HARM
233     card_name: 'shift-e-harm'
234     actions:
235       - *TOGGLE-BITS-HARM-DEFAULT
236       - *SHIFT-E
237       - *HEAL-RB
238   - &SHIFT-W-AND-HARM
239     card_name: 'shift-w-harm'
240     actions:
241       - *TOGGLE-BITS-HARM-DEFAULT
242       - *SHIFT-W
243       - *HEAL-RB
244
245   - &ROT-CW-AND-SET
246     card_name: 'rot-cw-set'
247     actions:
248       - *TOGGLE-BITS-DEFAULT
249       - *ROT-CW
250       - *SET-BITS-B
251
252   - &ROT-CCW-AND-SET
253     card_name: 'rot-ccw-set'
254     actions:
255       - *TOGGLE-BITS-DEFAULT
256       - *ROT-CCW
257       - *SET-BITS-G
258
259   - &SHIFT-E-BITSHIFT
260     card_name: 'shift-e-bitshift'
261     actions:
262       - *SHIFT-E
263       - *BITSHIFT-R
264   - &SHIFT-W-BITSHIFT
265     card_name: 'shift-w-bitshift'
266     actions:
267       - *SHIFT-W
268       - *BITSHIFT-L
269
270   - &MEAN-CARD
271     card_name: 'mean-card'
272     actions:
273       - *BAD-DEFAULT
274
275   - &REALLY-MEAN-CARD
276     card_name: 'mean-card'
277     actions:
278       - action_class: 'ClearBitsAndHealth'
279         required_bits: []
280       - action_class: 'LoseHealthOrMSB'
281         required_bits: [RED]
282
283 cards:
284   - *WIN-CARD-1
285   - *WIN-CARD-2
286   - *WIN-CARD-3
287   - *KNIGHT-AND-SET
288   - *CASTLE-AND-SET
289   - *BISHOP-AND-SET
290   - *BISHOP-SET-KNIGHT
291   - *KNIGHT-SET-CASTLE
292   - *CASTLE-SET-BISHOP
293   - *TOGGLE-RG-R
294   - *TOGGLE-RG-G
295   - *SHIFT-N-AND-HEAL
296   - *SHIFT-S-AND-HEAL
297   - *SHIFT-E-AND-HEAL
298   - *SHIFT-W-AND-HEAL
299   - *SHIFT-N-AND-HARM
300   - *SHIFT-S-AND-HARM
301   - *SHIFT-E-AND-HARM
302   - *SHIFT-W-AND-HARM
303   - *SHIFT-E-BITSHIFT
304   - *SHIFT-W-BITSHIFT
305   - *ROT-CW-AND-SET
306   - *ROT-CCW-AND-SET
307   - *MEAN-CARD
308   - *REALLY-MEAN-CARD
309
310 replacement_params:
311   chance: 0.2
312   min: 4
313   max: 8