Merge branch 'master' of git://ctpug.org.za/naja
[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     card_name: 'win1'
103     max_number: 1
104     actions:
105       - *ACQUIRE-WIN-TOKEN
106   - &WIN-CARD-2
107     card_name: 'win2'
108     max_number: 2
109     actions:
110       - *BAD-DEFAULT
111       - *ACQUIRE-WIN-TOKEN
112   - &WIN-CARD-3
113     card_name: 'win3'
114     max_number: 1
115     actions:
116       - *SET-BITS-DEFAULT
117       - *ACQUIRE-WIN-TOKEN
118
119   - &KNIGHT-AND-SET
120     card_name: 'knight_set'
121     actions:
122       - *BAD-DEFAULT
123       - *SET-BITS-B
124       - *KNIGHT-MOVE
125   - &CASTLE-AND-SET
126     card_name: 'castle_set'
127     actions:
128       - *BAD-DEFAULT
129       - *SET-BITS-G
130       - *CASTLE-MOVE
131   - &BISHOP-AND-SET
132     card_name: 'bishop_set'
133     actions:
134       - *BAD-DEFAULT
135       - *SET-BITS-R
136       - *BISHOP-MOVE
137
138   - &TOGGLE-RG-R
139     card_name: 'toggle-rg-r'
140     bits: [RED, GREEN]  # Colour-blind robot!
141     actions:
142       - *GAIN-HEALTH-DEFAULT
143       - action_class: 'ToggleBits'
144         required_bits: [RED]
145       - action_class: 'SetBits'
146         required_bits: [GREEN, BLUE]
147   - &TOGGLE-RG-G
148     card_name: 'toggle-rg-g'
149     bits: [RED, GREEN]  # Colour-blind robot!
150     actions:
151       - *GAIN-HEALTH-DEFAULT
152       - action_class: 'ToggleBits'
153         required_bits: [GREEN]
154       - action_class: 'SetBits'
155         required_bits: [RED, BLUE]
156
157   - &SHIFT-N-AND-HEAL
158     card_name: 'shift-n-heal'
159     actions:
160       - *TOGGLE-BITS-DEFAULT
161       - *SHIFT-N
162       - *HEAL-RG
163   - &SHIFT-S-AND-HEAL
164     card_name: 'shift-s-heal'
165     actions:
166       - *TOGGLE-BITS-DEFAULT
167       - *SHIFT-S
168       - *HEAL-RG
169   - &SHIFT-E-AND-HEAL
170     card_name: 'shift-e-heal'
171     actions:
172       - *TOGGLE-BITS-DEFAULT
173       - *SHIFT-E
174       - *HEAL-RB
175   - &SHIFT-W-AND-HEAL
176     card_name: 'shift-w-heal'
177     actions:
178       - *TOGGLE-BITS-DEFAULT
179       - *SHIFT-W
180       - *HEAL-RB
181
182   - &ROT-CW-AND-SET
183     card_name: 'rot-cw-set'
184     actions:
185       - *TOGGLE-BITS-DEFAULT
186       - *ROT-CW
187       - *SET-BITS-B
188
189   - &ROT-CCW-AND-SET
190     card_name: 'rot-ccw-set'
191     actions:
192       - *TOGGLE-BITS-DEFAULT
193       - *ROT-CCW
194       - *SET-BITS-G
195
196   - &SHIFT-E-BITSHIFT
197     card_name: 'shift-e-bitshift'
198     actions:
199       - *SHIFT-E
200       - *BITSHIFT-R
201   - &SHIFT-W-BITSHIFT
202     card_name: 'shift-w-bitshift'
203     actions:
204       - *SHIFT-W
205       - *BITSHIFT-L
206
207 cards:
208   - *WIN-CARD-1
209   - *WIN-CARD-2
210   - *WIN-CARD-3
211   - *KNIGHT-AND-SET
212   - *CASTLE-AND-SET
213   - *BISHOP-AND-SET
214   - *TOGGLE-RG-R
215   - *TOGGLE-RG-G
216   - *SHIFT-N-AND-HEAL
217   - *SHIFT-S-AND-HEAL
218   - *SHIFT-E-AND-HEAL
219   - *SHIFT-W-AND-HEAL
220   - *SHIFT-E-BITSHIFT
221   - *SHIFT-W-BITSHIFT
222   - *ROT-CW-AND-SET
223   - *ROT-CCW-AND-SET