dfc9e505fc55299402451f97162f103df1f7e1e6
[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 = '8x13.pcf'
9 FONT_SIZE = 16
10 EIGHT_BIT_SCALE = 2
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 DIRECTION_BITS = AttrDict({
28     'NORTH': 0,
29     'SOUTH': 1,
30     'EAST': 2,
31     'WEST': 3,
32 })
33 CONDITION_BITS = AttrDict({
34     'BLUE': 4,
35     'GREEN': 5,
36     'RED': 6,
37     'MSB': 7,
38 })
39 BITS = AttrDict()
40 BITS.update(DIRECTION_BITS)
41 BITS.update(CONDITION_BITS)
42
43 # PLAYER MOVES
44 MOVES = AttrDict({
45     # Default move
46     'ADJACENT': 0,
47     # Chess moves
48     'KNIGHT': 1,
49     'BISHOP': 2,
50     'CASTLE': 3,
51 })
52 CHESS_PIECES = AttrDict((k, v) for k, v in MOVES.items() if v > 0)
53
54 # Player defaults
55 PLAYER_DEFAULTS = AttrDict({
56     'INITIAL_BITS': 0x0f,
57     'INITIAL_POS': (2, 2),
58     'MAX_HEALTH': 4,
59     'WINS_REQUIRED': 4,
60 })
61
62 # Game size constants
63 TILE_SIZE = (96, 96)
64 # LOCK_HEIGHT = 48
65 LOCK_HEIGHT = 32
66 BOARD_SIZE = (5 * TILE_SIZE[0], 5 * TILE_SIZE[1])
67 BIT_SIZE = (5 * TILE_SIZE[0], (SCREEN[1] - 5 * TILE_SIZE[1]) // 2)
68 INFO_SIZE = (SCREEN[0] - 5 * TILE_SIZE[0], SCREEN[1])
69 PLAYER_SIZE = (64, 96)
70
71 # Player States
72 ACT = 1
73 EXAMINE = 2
74
75 KEYS = AttrDict({
76     'UP': (pgl.K_UP, pgl.K_w, pgl.K_COMMA),
77     'DOWN': (pgl.K_DOWN, pgl.K_s, pgl.K_o),
78     'LEFT': (pgl.K_LEFT, pgl.K_a),
79     'RIGHT': (pgl.K_RIGHT, pgl.K_d, pgl.K_e),
80     'NOMOVE': (pgl.K_SPACE,),
81
82     'SELECT': (pgl.K_RETURN, pgl.K_KP_ENTER),
83     'QUIT': (pgl.K_ESCAPE, pgl.K_q),
84     'SWITCH': (pgl.K_TAB,),
85 })
86
87 # PALETTE
88
89 PALETTE = AttrDict({
90     'BLACK': (0, 0, 0),
91     'DARK_RED': (108, 41, 64),
92     'DARK_VIOLET': (64, 53, 120),
93     'MAGENTA': (217, 60, 240),
94     'DARK_GREEN': (19, 87, 64),
95     'GREY': (128, 128, 128),
96     'BLUE': (38, 151, 240),
97     'LIGHT_VIOLET': (191, 180, 248),
98     'DARK_OLIVE': (64, 75, 7),
99     'ORANGE': (217, 104, 15),
100     'PINK': (236, 168, 191),
101     'GREEN': (38, 195, 15),
102     'LIGHT_OLIVE': (191, 202, 135),
103     'LIGHT_TURQUOISE': (147, 214, 191),
104     'WHITE': (255, 255, 255),
105 })
106
107 ACTION_GLYPHS = AttrDict({
108     'CLEAR_BITS': 0,
109     'TOGGLE_BITS': 1,
110     'SET_BITS': 2,
111     'CHANGE_BOARD': 3,
112     'DAMAGE': 4,
113     'HEAL': 5,
114     'MOVEMENT': 6,
115     'WINTOKEN': 7,
116     'MSB': 8,
117     'NOTHING': 9,
118 })