Introduction level
authorStefano Rivera <stefano@rivera.za.net>
Sat, 17 May 2014 19:05:12 +0000 (21:05 +0200)
committerStefano Rivera <stefano@rivera.za.net>
Sat, 17 May 2014 19:05:12 +0000 (21:05 +0200)
data/location_decks/introduction.yaml [new file with mode: 0644]

diff --git a/data/location_decks/introduction.yaml b/data/location_decks/introduction.yaml
new file mode 100644 (file)
index 0000000..4f7979b
--- /dev/null
@@ -0,0 +1,251 @@
+description: "Introduction"
+puzzle: true
+
+# This field is ignored, but it's a useful place to put some action definitions
+# we can reference later.
+_action_definitions:
+  - &NULL-ACTION
+    action_class: 'DoNothing'
+    required_bits: []
+    data:
+      message: "Nothing to see here."
+
+  - &NULL-CARD
+    card_name: 'null'
+    actions:
+      - *NULL-ACTION
+
+  - &STEP1-ACTION
+    action_class: 'DoNothing'
+    required_bits: []
+    data:
+      message: "Welcome to the game. You can only move to chequered squares, therefore you can stay here or move right."
+
+  - &STEP1-CARD
+    card_name: 'step1'
+    actions:
+      - *STEP1-ACTION
+
+  - &STEP2-ACTION
+    action_class: 'SetBits'
+    required_bits: []
+    data:
+      message: "Moving to a tile requires picking an action. Some tiles' actions set bits on your robot. Such as the {SOUTH} bit."
+
+  - &STEP2-CARD
+    card_name: 'step2'
+    bits: [SOUTH]
+    actions:
+      - *STEP2-ACTION
+
+  - &STEP3-ACTION
+    action_class: 'ClearBits'
+    required_bits: []
+    data:
+      message: "Other tiles' actions clear bits. {SOUTH} or {EAST}. For the next part of the tutorial, we are  going to strictly control your movement bits."
+
+  - &STEP3-CARD-1
+    card_name: 'step3-1'
+    bits: [SOUTH, WEST]
+    actions:
+      - *STEP3-ACTION
+
+  - &STEP3-CARD-2
+    card_name: 'step3-2'
+    bits: [EAST]
+    actions:
+      - *STEP3-ACTION
+
+  - &STEP4-ACTION
+    action_class: 'SetBits'
+    required_bits: []
+    data:
+      message: "There are key bits that can be set, such as {RED}. They may be required by actions."
+
+  - &STEP4-CARD
+    card_name: 'step4'
+    bits: [RED, SOUTH, EAST]
+    actions:
+      - *STEP4-ACTION
+
+  - &STEP5-ACTION-BLUE
+    action_class: 'GenericBits'
+    required_bits: [BLUE]
+    data:
+      message: "You need to have the {BLUE} bit, to use this action and continue. Some actions have more complex requirements."
+      set: [EAST]
+      clear: [NORTH, SOUTH, WEST]
+
+  - &STEP5-ACTION-DEFAULT
+    action_class: 'GenericBits'
+    required_bits: []
+    data:
+      message: "Go back."
+      set: [WEST]
+      clear: [EAST, SOUTH, NORTH]
+
+  - &STEP5-CARD
+    card_name: 'step5'
+    bits: []
+    actions:
+      - *STEP5-ACTION-BLUE
+      - *STEP5-ACTION-DEFAULT
+
+  - &STEP6-ACTION-RED
+    action_class: 'GenericBits'
+    required_bits: [RED]
+    data:
+      message: "You need to have the {RED} bit, to use this action to set the {BLUE} bit."
+      set: [NORTH, BLUE]
+      clear: [SOUTH, EAST, WEST]
+
+  - &STEP6-ACTION-DEFAULT
+    action_class: 'GenericBits'
+    required_bits: []
+    data:
+      message: "This action doesn't require anything. Go back."
+      set: [NORTH]
+      clear: [SOUTH, EAST, WEST]
+
+  - &STEP6-CARD
+    card_name: 'step6'
+    bits: [BLUE]
+    actions:
+      - *STEP6-ACTION-RED
+      - *STEP6-ACTION-DEFAULT
+
+  - &STEP7-ACTION
+    action_class: 'SetBits'
+    required_bits: []
+    data:
+      message: "Almost there. You have free reign on this column. Collect yourself a win bit {WINTOKEN} to finish the level. Good luck!"
+
+  - &STEP7-CARD
+    card_name: 'step7'
+    bits: [NORTH, SOUTH]
+    actions:
+      - *STEP7-ACTION
+
+  - &STEP8-ACTION-DEFAULT
+    action_class: 'LoseHealthOrMSB'
+    required_bits: []
+    data:
+      message: "Losing health {HEALTH} is a bad idea..."
+
+  - &STEP8-ACTION-GREEN
+    action_class: 'SetBits'
+    required_bits: [BLUE, RED]
+
+  - &STEP8-CARD
+    card_name: 'step8'
+    bits: [GREEN]
+    actions:
+      - *STEP8-ACTION-DEFAULT
+      - *STEP8-ACTION-GREEN
+
+  - &STEP9-ACTION
+    action_class: 'ToggleBits'
+    required_bits: []
+    data:
+      message: "I wonder what the most significant bit {MSB} does..."
+
+  - &STEP9-CARD
+    card_name: 'step9'
+    bits: [MSB]
+    actions:
+      - *STEP9-ACTION
+
+  - &STEP10-ACTION
+    action_class: 'ShiftLocations'
+    required_bits: [GREEN]
+    data:
+      direction: EAST
+      message: "Some actions change the game board."
+
+  - &STEP10-CARD
+    card_name: 'step10'
+    actions:
+      - *STEP10-ACTION
+
+  - &STEP11-ACTION
+    action_class: 'GenericBits'
+    required_bits: []
+    data:
+      message: "We may have lied to you."
+      set: [WEST]
+      clear: [NORTH, SOUTH, EAST]
+
+  - &STEP11-CARD
+    card_name: 'step11'
+    actions:
+      - *STEP11-ACTION
+
+  - &STEP12-ACTION
+    action_class: 'GenericBits'
+    required_bits: []
+    data:
+      set: [NORTH]
+      clear: [SOUTH, EAST, WEST]
+
+  - &STEP12-CARD
+    card_name: 'step12'
+    actions:
+      - *STEP12-ACTION
+
+  - &STEP13-ACTION
+    action_class: 'GenericBits'
+    required_bits: []
+    data:
+      set: [EAST, NORTH, SOUTH]
+      clear: [WEST]
+
+  - &STEP13-CARD
+    card_name: 'step13'
+    actions:
+      - *STEP13-ACTION
+
+  - &WIN-ACTION
+    action_class: 'AcquireWinToken'
+    required_bits: [RED, GREEN, BLUE]
+
+  - &WIN-CARD
+    card_name: 'win'
+    actions:
+      - *WIN-ACTION
+
+cards:
+  - *STEP1-CARD
+  - *STEP2-CARD
+  - *STEP3-CARD-2
+  - *NULL-CARD
+  - *STEP8-CARD
+
+  - *NULL-CARD
+  - *STEP3-CARD-1
+  - *STEP4-CARD
+  - *STEP5-CARD
+  - *STEP7-CARD
+
+  - *NULL-CARD
+  - *NULL-CARD
+  - *STEP6-CARD
+  - *NULL-CARD
+  - *STEP9-CARD
+
+  - *WIN-CARD
+  - *STEP13-CARD
+  - *STEP13-CARD
+  - *STEP13-CARD
+  - *STEP10-CARD
+
+  - *NULL-CARD
+  - *NULL-CARD
+  - *NULL-CARD
+  - *STEP12-CARD
+  - *STEP11-CARD
+
+defaults:
+  initial_bits: 0x4
+  initial_pos: [0, 0]
+  max_health: 7
+  wins_required: 1