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