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 tutorial!\nYou can select any tile, but only move in directions with bits set. These are checquered. Now, only the current tile and 1 tile {EAST}.\nSelect {EAST} tile and press {RETURN}." - &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-ACTION-NULL action_class: 'SetBits' required_bits: [] data: message: "So does this one. See, we gave you a choice!" - &STEP2-CARD card_name: 'step2' bits: [SOUTH] actions: - *STEP2-ACTION - *STEP2-ACTION-NULL - &STEP3-ACTION action_class: 'ClearBits' required_bits: [] data: message: "Other tiles' actions clear bits. This will clear {SOUTH} or {EAST}.\nFor the next part of the tutorial, we are going to strictly control your movement bits, so you don't get lost." - &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.\nThis action also sets {EAST,SOUTH}." - &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.\nSome actions have more complex requirements." set: [EAST] clear: [NORTH, SOUTH, WEST] - &STEP5-ACTION-DEFAULT action_class: 'GenericBits' required_bits: [] data: message: "Go back.\nSet {WEST}. Clear {NORTH,SOUTH,EAST}." set: [WEST] clear: [EAST, SOUTH, NORTH] - &STEP5-CARD card_name: 'step5' bits: [NORTH, SOUTH, EAST, WEST] 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.\nSet {NORTH}. Clear {SOUTH,EAST,WEST}." set: [NORTH] clear: [SOUTH, EAST, WEST] - &STEP6-CARD card_name: 'step6' bits: [NORTH, SOUTH, EAST, WEST, BLUE] actions: - *STEP6-ACTION-RED - *STEP6-ACTION-DEFAULT - &STEP7-ACTION action_class: 'SetBits' required_bits: [] data: message: "Almost there. You have free rein in this column.\nFinish the game by collecting enough {WINTOKEN}. 1 in this level.\nGood 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: "All of the actions on this tile require {GREEN}. Without it, you can't even enter.\nActions like this one 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 about restricting to this column.\nSet {WEST}. Clear {NORTH,SOUTH,EAST}." set: [WEST] clear: [NORTH, SOUTH, EAST] - &STEP11-CARD card_name: 'step11' bits: [NORTH, SOUTH, EAST, WEST] actions: - *STEP11-ACTION - &STEP12-ACTION action_class: 'GenericBits' required_bits: [] data: message: "In this board, tiles didn't change. In the random games, after taking an action (or a timer expires) the tile will be replaced.\nSet {NORTH}. Clear {SOUTH,EAST,WEST}." set: [NORTH] clear: [SOUTH, EAST, WEST] - &STEP12-CARD card_name: 'step12' bits: [NORTH, SOUTH, EAST, WEST] actions: - *STEP12-ACTION - &STEP13-ACTION action_class: 'GenericBits' required_bits: [] data: set: [EAST, NORTH, SOUTH] clear: [WEST] - &STEP13-CARD card_name: 'step13' bits: [EAST, NORTH, SOUTH, WEST] 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