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! You can select any tile, but only move {NORTH,SOUTH,EAST} or {WEST} if those bits are set — allowed tiles are chequered.\nRight now you can stay on this tile or move {EAST}.\nSelect {EAST} tile and press {RETURN}." - &STEP1-CARD card_name: 'step1' actions: - *STEP1-ACTION - &STEP2-ACTION action_class: 'SetBits' required_bits: [] data: message: "When you move to a tile, you must pick an action. This tile has 2 actions. Both this tile's actions set bits on your robot, the {SOUTH} bit." - &STEP2-ACTION-NULL action_class: 'SetBits' required_bits: [] data: message: "This is the second 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 control your movement bits strictly, 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: "This action sets {EAST,SOUTH} and {RED}." - &STEP4-ACTION-GREEN action_class: 'GainHealth' required_bits: [GREEN] data: message: "Some actions require one or more key bits to be set.\nIf you haven't got {GREEN} yet, this action is greyed out to show that you can't use it." - &STEP4-CARD card_name: 'step4' bits: [RED, SOUTH, EAST] actions: - *STEP4-ACTION-GREEN - *STEP4-ACTION - &STEP5-ACTION-BLUE action_class: 'GenericBits' required_bits: [BLUE] data: message: "You need to have the {BLUE} bit to use this action to set {EAST} so that you can continue. This action clears {NORTH,SOUTH,WEST}." set: [EAST] clear: [NORTH, SOUTH, WEST] - &STEP5-ACTION-DEFAULT action_class: 'GenericBits' required_bits: [] data: message: "Go back: set {WEST} and 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 {NORTH,BLUE}. This action also clears {SOUTH,EAST,WEST}." set: [NORTH, BLUE] clear: [SOUTH, EAST, WEST] - &STEP6-ACTION-DEFAULT action_class: 'GenericBits' required_bits: [] data: message: "This action doesn't require anything. It only sets {NORTH} and clears {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.\nThis action moves tiles around on the game board." - &STEP10-CARD card_name: 'step10' actions: - *STEP10-ACTION - &STEP11-ACTION action_class: 'GenericBits' required_bits: [] data: message: "We may have lied about restricting you 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: "On this board, tiles don't change. In random games, after you take an action the tile will be replaced. Some tiles are also replaced when a timer expires.\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 - &UNREACHABLE-KNIGHT-ACTION action_class: 'AllowChessMove' required_bits: [RED, GREEN] data: chesspiece: KNIGHT message: "Some cards temporarily change the way you move. For one turn you can be a ♞..." - &UNREACHABLE-CASTLE-ACTION action_class: 'AllowChessMove' required_bits: [RED, BLUE] data: chesspiece: CASTLE message: "Or a ♜..." - &UNREACHABLE-BISHOP-ACTION action_class: 'AllowChessMove' required_bits: [GREEN, BLUE] data: chesspiece: BISHOP message: "Or a ♝!" - &UNREACHABLE-CHESS-CARD card_name: 'chess' actions: - *UNREACHABLE-KNIGHT-ACTION - *UNREACHABLE-CASTLE-ACTION - *UNREACHABLE-BISHOP-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 - *UNREACHABLE-CHESS-CARD - *NULL-CARD - *NULL-CARD - *STEP12-CARD - *STEP11-CARD defaults: initial_bits: 0x4 initial_pos: [0, 0] max_health: 7 wins_required: 1