f723fc24af850e2f6e20b519cf3abf8973d6920a
[naja.git] / naja / constants.py
1 import pygame.locals as pgl
2
3 from naja.attrdict import AttrDict
4
5
6 SCREEN = (800, 600)
7 FPS = 40
8 FONT = '4x6.pcf'
9 FONT_SIZE = 16
10 EIGHT_BIT_SCALE = 4
11
12 DEFAULTS = dict(
13     debug=False,
14     sound=True,
15     music=True,
16 )
17
18 # Sound constants
19 FREQ = 44100   # same as audio CD
20 BITSIZE = -16  # unsigned 16 bit
21 CHANNELS = 2   # 1 == mono, 2 == stereo
22 BUFFER = 1024  # audio buffer size in no. of samples
23 DEFAULT_SOUND_VOLUME = 1.0  # sound volume
24 DEFAULT_MUSIC_VOLUME = 0.3  # music volume
25
26 # Player bits
27 BITS = AttrDict({
28     # Direction bits
29     'NORTH': 0,
30     'SOUTH': 1,
31     'EAST': 2,
32     'WEST': 3,
33     # Condition bits
34     'CYAN': 4,
35     'MAGENTA': 5,
36     'YELLOW': 6,
37     'MSB': 7,
38 })
39 DIRECTION_BITS = AttrDict((k, v) for k, v in BITS.items() if v < 4)
40 CONDITION_BITS = AttrDict((k, v) for k, v in BITS.items() if v >= 4)
41
42 # Player defaults
43 PLAYER_DEFAULTS = AttrDict({
44     'INITIAL_BITS': 0x0f,
45     'INITIAL_POS': (2, 2),
46     'MAX_HEALTH': 4,
47     'WINS_REQUIRED': 4,
48 })
49
50 # Game size constants
51 TILE_SIZE = (96, 96)
52 LOCK_HEIGHT = 48
53 BOARD_SIZE = (5 * TILE_SIZE[0], 5 * TILE_SIZE[1])
54 BIT_SIZE = (5 * TILE_SIZE[0], (SCREEN[1] - 5 * TILE_SIZE[1]) // 2)
55 INFO_SIZE = (SCREEN[0] - 5 * TILE_SIZE[0], SCREEN[1])
56 PLAYER_SIZE = (64, 96)
57
58 # Player States
59 MOVE = 1
60 ACT = 2
61 EXAMINE = 3
62
63 KEYS = AttrDict({
64     'UP': (pgl.K_UP, pgl.K_w, pgl.K_COMMA),
65     'DOWN': (pgl.K_DOWN, pgl.K_s, pgl.K_o),
66     'LEFT': (pgl.K_LEFT, pgl.K_a),
67     'RIGHT': (pgl.K_RIGHT, pgl.K_d, pgl.K_e),
68     'NOMOVE': (pgl.K_SPACE,),
69
70     'SELECT': (pgl.K_RETURN, pgl.K_KP_ENTER),
71     'QUIT': (pgl.K_ESCAPE, pgl.K_q),
72     'SWITCH': (pgl.K_TAB,),
73 })