--- /dev/null
+description: "Test Puzzle"
+puzzle: true
+
+# This field is ignored, but it's a useful place to put some action definitions
+# we can reference later.
+_action_definitions:
+ # No-colour actions.
+ - &SET-BITS-DEFAULT
+ action_class: 'LoseHealthOrMSBAndSetBits'
+ required_bits: []
+ - &GAIN-HEALTH-DEFAULT
+ action_class: 'GainHealthAndClearBitsOrMSB'
+ required_bits: []
+ - &TOGGLE-BITS-DEFAULT
+ action_class: 'ToggleBits'
+ required_bits: []
+ - &BAD-DEFAULT
+ action_class: 'LoseHealthOrMSB'
+ required_bits: []
+
+ # One-colour actions.
+ - &SET-BITS-R
+ action_class: 'SetBits'
+ required_bits: [RED]
+ - &SET-BITS-G
+ action_class: 'SetBits'
+ required_bits: [GREEN]
+ - &SET-BITS-B
+ action_class: 'SetBits'
+ required_bits: [BLUE]
+
+ - &SHIFT-N
+ action_class: 'ShiftLocations'
+ required_bits: [BLUE]
+ data: {'direction': NORTH}
+ - &SHIFT-S
+ action_class: 'ShiftLocations'
+ required_bits: [BLUE]
+ data: {'direction': SOUTH}
+ - &SHIFT-E
+ action_class: 'ShiftLocations'
+ required_bits: [GREEN]
+ data: {'direction': EAST}
+ - &SHIFT-W
+ action_class: 'ShiftLocations'
+ required_bits: [GREEN]
+ data: {'direction': WEST}
+
+ - &ROT-CW
+ action_class: 'RotateLocations'
+ required_bits: [RED]
+ data: {'rot_direction': CLOCKWISE}
+ - &ROT-CCW
+ action_class: 'RotateLocations'
+ required_bits: [RED]
+ data: {'rot_direction': ANTICLOCKWISE}
+
+ # Two-colour actions.
+ - &KNIGHT-MOVE
+ action_class: 'AllowChessMove'
+ required_bits: [RED, GREEN]
+ data: {'chesspiece': KNIGHT}
+ - &CASTLE-MOVE
+ action_class: 'AllowChessMove'
+ required_bits: [RED, BLUE]
+ data: {'chesspiece': CASTLE}
+ - &BISHOP-MOVE
+ action_class: 'AllowChessMove'
+ required_bits: [GREEN, BLUE]
+ data: {'chesspiece': BISHOP}
+
+ - &HEAL-RG
+ action_class: 'GainHealth'
+ required_bits: [RED, GREEN]
+ - &HEAL-RB
+ action_class: 'GainHealth'
+ required_bits: [RED, BLUE]
+
+ # Three-colour actions.
+ - &ACQUIRE-WIN-TOKEN
+ action_class: 'AcquireWinToken'
+ required_bits: [RED, GREEN, BLUE]
+
+ # Test actions
+ - &TEST-WIN
+ action_class: 'AcquireWinToken'
+ required_bits: []
+ - &TEST-NULL
+ action_class: 'DoNothing'
+ required_bits: []
+
+# This field is ignored, but it's a useful place to put some card definitions
+# we can reference later.
+_card_definitions:
+ - &TEST-WIN-CARD
+ card_name: 'test-win'
+ actions:
+ - *TEST-WIN
+ - &TEST-BORING
+ card_name: 'test-boring'
+ actions:
+ - *TEST-NULL
+
+cards:
+ - *TEST-WIN-CARD
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-WIN-CARD
+
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-BORING
+
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-BORING
+
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-BORING
+
+ - *TEST-WIN-CARD
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-BORING
+ - *TEST-WIN-CARD
+++ /dev/null
-description: "Test Puzzle"
-puzzle: true
-
-# This field is ignored, but it's a useful place to put some action definitions
-# we can reference later.
-_action_definitions:
- # No-colour actions.
- - &SET-BITS-DEFAULT
- action_class: 'LoseHealthOrMSBAndSetBits'
- required_bits: []
- - &GAIN-HEALTH-DEFAULT
- action_class: 'GainHealthAndClearBitsOrMSB'
- required_bits: []
- - &TOGGLE-BITS-DEFAULT
- action_class: 'ToggleBits'
- required_bits: []
- - &BAD-DEFAULT
- action_class: 'LoseHealthOrMSB'
- required_bits: []
-
- # One-colour actions.
- - &SET-BITS-R
- action_class: 'SetBits'
- required_bits: [RED]
- - &SET-BITS-G
- action_class: 'SetBits'
- required_bits: [GREEN]
- - &SET-BITS-B
- action_class: 'SetBits'
- required_bits: [BLUE]
-
- - &SHIFT-N
- action_class: 'ShiftLocations'
- required_bits: [BLUE]
- data: {'direction': NORTH}
- - &SHIFT-S
- action_class: 'ShiftLocations'
- required_bits: [BLUE]
- data: {'direction': SOUTH}
- - &SHIFT-E
- action_class: 'ShiftLocations'
- required_bits: [GREEN]
- data: {'direction': EAST}
- - &SHIFT-W
- action_class: 'ShiftLocations'
- required_bits: [GREEN]
- data: {'direction': WEST}
-
- - &ROT-CW
- action_class: 'RotateLocations'
- required_bits: [RED]
- data: {'rot_direction': CLOCKWISE}
- - &ROT-CCW
- action_class: 'RotateLocations'
- required_bits: [RED]
- data: {'rot_direction': ANTICLOCKWISE}
-
- # Two-colour actions.
- - &KNIGHT-MOVE
- action_class: 'AllowChessMove'
- required_bits: [RED, GREEN]
- data: {'chesspiece': KNIGHT}
- - &CASTLE-MOVE
- action_class: 'AllowChessMove'
- required_bits: [RED, BLUE]
- data: {'chesspiece': CASTLE}
- - &BISHOP-MOVE
- action_class: 'AllowChessMove'
- required_bits: [GREEN, BLUE]
- data: {'chesspiece': BISHOP}
-
- - &HEAL-RG
- action_class: 'GainHealth'
- required_bits: [RED, GREEN]
- - &HEAL-RB
- action_class: 'GainHealth'
- required_bits: [RED, BLUE]
-
- # Three-colour actions.
- - &ACQUIRE-WIN-TOKEN
- action_class: 'AcquireWinToken'
- required_bits: [RED, GREEN, BLUE]
-
- # Test actions
- - &TEST-WIN
- action_class: 'AcquireWinToken'
- required_bits: []
- - &TEST-NULL
- action_class: 'DoNothing'
- required_bits: []
-
-# This field is ignored, but it's a useful place to put some card definitions
-# we can reference later.
-_card_definitions:
- - &TEST-WIN-CARD
- card_name: 'test-win'
- actions:
- - *TEST-WIN
- - &TEST-BORING
- card_name: 'test-boring'
- actions:
- - *TEST-NULL
-
-cards:
- - *TEST-WIN-CARD
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-WIN-CARD
-
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-BORING
-
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-BORING
-
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-BORING
-
- - *TEST-WIN-CARD
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-BORING
- - *TEST-WIN-CARD
def puzzle_game(self, event):
self.start_game(GameState.new(
- deck='test_puzzle', max_health=4, wins_required=4))
+ deck='puzzles/test', max_health=4, wins_required=4))
def start_game(self, state):
from naja.scenes.game import GameScene