Bit shifts!
[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
20   # One-colour actions.
21   - &SET-BITS-R
22     action_class: 'SetBits'
23     required_bits: [RED]
24   - &SET-BITS-G
25     action_class: 'SetBits'
26     required_bits: [GREEN]
27   - &SET-BITS-B
28     action_class: 'SetBits'
29     required_bits: [BLUE]
30
31   - &SHIFT-N
32     action_class: 'ShiftLocations'
33     required_bits: [BLUE]
34     data: {'direction': NORTH}
35   - &SHIFT-S
36     action_class: 'ShiftLocations'
37     required_bits: [BLUE]
38     data: {'direction': SOUTH}
39   - &SHIFT-E
40     action_class: 'ShiftLocations'
41     required_bits: [GREEN]
42     data: {'direction': EAST}
43   - &SHIFT-W
44     action_class: 'ShiftLocations'
45     required_bits: [GREEN]
46     data: {'direction': WEST}
47
48   - &ROT-CW
49     action_class: 'RotateLocations'
50     required_bits: [RED]
51     data: {'rot_direction': CLOCKWISE}
52   - &ROT-CCW
53     action_class: 'RotateLocations'
54     required_bits: [RED]
55     data: {'rot_direction': ANTICLOCKWISE}
56
57   # Two-colour actions.
58   - &KNIGHT-MOVE
59     action_class: 'AllowChessMove'
60     required_bits: [RED, GREEN]
61     data: {'chesspiece': KNIGHT}
62   - &CASTLE-MOVE
63     action_class: 'AllowChessMove'
64     required_bits: [RED, BLUE]
65     data: {'chesspiece': CASTLE}
66   - &BISHOP-MOVE
67     action_class: 'AllowChessMove'
68     required_bits: [GREEN, BLUE]
69     data: {'chesspiece': BISHOP}
70
71   - &HEAL-RG
72     action_class: 'GainHealth'
73     required_bits: [RED, GREEN]
74   - &HEAL-RB
75     action_class: 'GainHealth'
76     required_bits: [RED, BLUE]
77
78   - &BITSHIFT-L
79     action_class: 'ShiftBits'
80     required_bits: [RED, BLUE]
81     data: {
82       'direction': 'left',
83       'shift': 1,
84     }
85   - &BITSHIFT-R
86     action_class: 'ShiftBits'
87     required_bits: [GREEN, BLUE]
88     data: {
89       'direction': 'right',
90       'shift': 1,
91     }
92
93   # Three-colour actions.
94   - &ACQUIRE-WIN-TOKEN
95     action_class: 'AcquireWinToken'
96     required_bits: [RED, GREEN, BLUE]
97
98 # This field is ignored, but it's a useful place to put some card definitions
99 # we can reference later.
100 _card_definitions:
101   - &WIN-CARD-1
102     actions:
103       - *ACQUIRE-WIN-TOKEN
104   - &WIN-CARD-2
105     actions:
106       - *BAD-DEFAULT
107       - *ACQUIRE-WIN-TOKEN
108   - &WIN-CARD-3
109     actions:
110       - *SET-BITS-DEFAULT
111       - *ACQUIRE-WIN-TOKEN
112
113   - &KNIGHT-AND-SET
114     actions:
115       - *BAD-DEFAULT
116       - *SET-BITS-B
117       - *KNIGHT-MOVE
118   - &CASTLE-AND-SET
119     actions:
120       - *BAD-DEFAULT
121       - *SET-BITS-G
122       - *CASTLE-MOVE
123   - &BISHOP-AND-SET
124     actions:
125       - *BAD-DEFAULT
126       - *SET-BITS-R
127       - *BISHOP-MOVE
128
129   - &TOGGLE-RG-R
130     bits: [RED, GREEN]  # Colour-blind robot!
131     actions:
132       - *GAIN-HEALTH-DEFAULT
133       - action_class: 'ToggleBits'
134         required_bits: [RED]
135       - action_class: 'SetBits'
136         required_bits: [GREEN, BLUE]
137   - &TOGGLE-RG-G
138     bits: [RED, GREEN]  # Colour-blind robot!
139     actions:
140       - *GAIN-HEALTH-DEFAULT
141       - action_class: 'ToggleBits'
142         required_bits: [GREEN]
143       - action_class: 'SetBits'
144         required_bits: [RED, BLUE]
145
146   - &SHIFT-N-AND-HEAL
147     actions:
148       - *TOGGLE-BITS-DEFAULT
149       - *SHIFT-N
150       - *HEAL-RG
151   - &SHIFT-S-AND-HEAL
152     actions:
153       - *TOGGLE-BITS-DEFAULT
154       - *SHIFT-S
155       - *HEAL-RG
156   - &SHIFT-E-AND-HEAL
157     actions:
158       - *TOGGLE-BITS-DEFAULT
159       - *SHIFT-E
160       - *HEAL-RB
161   - &SHIFT-W-AND-HEAL
162     actions:
163       - *TOGGLE-BITS-DEFAULT
164       - *SHIFT-W
165       - *HEAL-RB
166
167   - &ROT-CW-AND-SET
168     actions:
169       - *TOGGLE-BITS-DEFAULT
170       - *ROT-CW
171       - *SET-BITS-B
172
173   - &ROT-CCW-AND-SET
174     actions:
175       - *TOGGLE-BITS-DEFAULT
176       - *ROT-CCW
177       - *SET-BITS-G
178
179   - &SHIFT-E-BITSHIFT
180     actions:
181       - *SHIFT-E
182       - *BITSHIFT-R
183   - &SHIFT-W-BITSHIFT
184     actions:
185       - *SHIFT-W
186       - *BITSHIFT-L
187
188 cards:
189   - *WIN-CARD-1
190   - *WIN-CARD-2
191   - *WIN-CARD-3
192   - *KNIGHT-AND-SET
193   - *CASTLE-AND-SET
194   - *BISHOP-AND-SET
195   - *TOGGLE-RG-R
196   - *TOGGLE-RG-G
197   - *SHIFT-N-AND-HEAL
198   - *SHIFT-S-AND-HEAL
199   - *SHIFT-E-AND-HEAL
200   - *SHIFT-W-AND-HEAL
201   - *SHIFT-E-BITSHIFT
202   - *SHIFT-W-BITSHIFT
203   - *ROT-CW-AND-SET
204   - *ROT-CCW-AND-SET