Moving the Mountain.
[naja.git] / naja / constants.py
index 1ce931a871bdcfbc9dad55d38595607c24070746..7dbd9696d67fce27a0ed1d15756e4f2ff6e72dad 100644 (file)
@@ -13,6 +13,12 @@ DEFAULTS = dict(
     debug=False,
     sound=True,
     music=True,
+    # We calculate the default in options.py
+    save_location=None,
+    # Debug flags:
+    initial_bits=None,
+    cheat_enabled=False,
+    game_state=None,
 )
 
 # Sound constants
@@ -51,6 +57,11 @@ MOVES = AttrDict({
 })
 CHESS_PIECES = AttrDict((k, v) for k, v in MOVES.items() if v > 0)
 
+ROTATION = AttrDict({
+    'CLOCKWISE': 0,
+    'ANTICLOCKWISE': 1,
+})
+
 # Player defaults
 PLAYER_DEFAULTS = AttrDict({
     'INITIAL_BITS': 0x0f,
@@ -66,7 +77,10 @@ SMALL_LOCK_HEIGHT = 24
 BOARD_SIZE = (5 * TILE_SIZE[0], 5 * TILE_SIZE[1])
 BIT_SIZE = (5 * TILE_SIZE[0], (SCREEN[1] - 5 * TILE_SIZE[1]) // 2)
 INFO_SIZE = (SCREEN[0] - 5 * TILE_SIZE[0], SCREEN[1])
+INFO_LEFT_PADDING = 18
+INFO_RIGHT_PADDING = 18
 PLAYER_SIZE = (64, 96)
+ACTION_TEXT_OFFSET = 20
 
 # Player States
 ACT = 1
@@ -82,9 +96,23 @@ KEYS = AttrDict({
     'SELECT': (pgl.K_RETURN, pgl.K_KP_ENTER),
     'QUIT': (pgl.K_ESCAPE, pgl.K_q),
     'SWITCH': (pgl.K_TAB,),
+
+    'KONAMI': (
+        pgl.K_UP, pgl.K_DOWN, pgl.K_LEFT, pgl.K_RIGHT, pgl.K_a, pgl.K_b),
 })
 
-# PALETTE
+KONAMI_CODE = [
+    pgl.K_UP,
+    pgl.K_UP,
+    pgl.K_DOWN,
+    pgl.K_DOWN,
+    pgl.K_LEFT,
+    pgl.K_RIGHT,
+    pgl.K_LEFT,
+    pgl.K_RIGHT,
+    pgl.K_b,
+    pgl.K_a,
+]
 
 PALETTE = AttrDict({
     'BLACK': (0, 0, 0),
@@ -104,15 +132,33 @@ PALETTE = AttrDict({
     'WHITE': (255, 255, 255),
 })
 
+
 ACTION_GLYPHS = AttrDict({
-    'CLEAR_BITS': 0,
-    'TOGGLE_BITS': 1,
-    'SET_BITS': 2,
-    'CHANGE_BOARD': 3,
-    'DAMAGE': 4,
-    'HEAL': 5,
-    'MOVEMENT': 6,
-    'WINTOKEN': 7,
-    'MSB': 8,
-    'NOTHING': 9,
+    'CLEAR_BITS': 'glyphs/bits_clear.png',
+    'TOGGLE_BITS': 'glyphs/bits_toggle.png',
+    'SET_BITS': 'glyphs/bits_set.png',
+    'CHANGE_BOARD': 'glyphs/board.png',
+    'DAMAGE': 'glyphs/damage.png',
+    'HEAL': 'glyphs/health.png',
+    'MOVEMENT': 'glyphs/move.png',
+    'WINTOKEN': 'glyphs/win.png',
+    'MSB': 'glyphs/msb.png',
+    'NOTHING': 'glyphs/do_nothing.png',
+    'SHIFT_LEFT': 'glyphs/shift_left.png',
+    'SHIFT_RIGHT': 'glyphs/shift_right.png',
 })
+
+TUNES = (
+    'ants.ogg',
+    'python.ogg',
+    'death_on_a_b.ogg',
+    'scape.ogg',
+    'another_beek.ogg',
+)
+
+# Puzzles, because resources can't give us file lists
+PUZZLES = (
+    'chess',
+    'marathon',
+    'belts',
+)