Factor out EIGHT_BIT_SCALE.
[naja.git] / naja / constants.py
index 0dc6b84726fd370b7079d666c589040c7c4bdc84..45ffa3c0b6a065ea9cad4d30a982e11d1c5d12b5 100644 (file)
@@ -1,7 +1,11 @@
+from naja.attrdict import AttrDict
+
+
 SCREEN = (800, 600)
 FPS = 40
 FONT = 'DejaVuSans.ttf'
 FONT_SIZE = 16
+EIGHT_BIT_SCALE = 4
 
 DEFAULTS = dict(
     debug=False,
@@ -18,11 +22,32 @@ DEFAULT_SOUND_VOLUME = 1.0  # sound volume
 DEFAULT_MUSIC_VOLUME = 0.3  # music volume
 
 # Player bits
-NORTH = 0
-SOUTH = 1
-EAST = 2
-WEST = 3
-CYAN = 4
-MAGENTA = 5
-YELLOW = 6
-MSB = 7
+BITS = AttrDict({
+    # Direction bits
+    'NORTH': 1,
+    'SOUTH': 2,
+    'EAST': 4,
+    'WEST': 8,
+    # Condition bits
+    'CYAN': 16,
+    'MAGENTA': 32,
+    'YELLOW': 64,
+    'MSB': 128,
+})
+DIRECTION_BITS = AttrDict((k, v) for k, v in BITS.items() if v < 4)
+CONDITION_BITS = AttrDict((k, v) for k, v in BITS.items() if v >= 4)
+
+# Player defaults
+PLAYER_DEFAULTS = AttrDict({
+    'INITIAL_BITS': BITS.NORTH | BITS.SOUTH | BITS.EAST | BITS.WEST,
+    'INITIAL_POS': (2, 2),
+    'MAX_HEALTH': 4,
+    'WINS_REQUIRED': 4,
+})
+
+# Game size constants
+TILE_SIZE = (96, 96)
+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])
+PLAYER_SIZE = (64, 96)