X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fconstants.py;h=96824f4042dc530aa9da433c70fa64c7023bfc54;hb=ae81bf6bf108dfce2ece923587aa4004149feed0;hp=faa8c55b14cac16ed99e0459f773c8f7e4039230;hpb=39f49f9579bdee2ad449246d1370a0be27186ed9;p=naja.git diff --git a/naja/constants.py b/naja/constants.py index faa8c55..96824f4 100644 --- a/naja/constants.py +++ b/naja/constants.py @@ -1,7 +1,13 @@ +import pygame.locals as pgl + +from naja.attrdict import AttrDict + + SCREEN = (800, 600) FPS = 40 -FONT = 'DejaVuSans.ttf' +FONT = '8x13.pcf' FONT_SIZE = 16 +EIGHT_BIT_SCALE = 2 DEFAULTS = dict( debug=False, @@ -16,3 +22,71 @@ CHANNELS = 2 # 1 == mono, 2 == stereo BUFFER = 1024 # audio buffer size in no. of samples DEFAULT_SOUND_VOLUME = 1.0 # sound volume DEFAULT_MUSIC_VOLUME = 0.3 # music volume + +# Player bits +BITS = AttrDict({ + # Direction bits + 'NORTH': 0, + 'SOUTH': 1, + 'EAST': 2, + 'WEST': 3, + # Condition bits + 'BLUE': 4, + 'GREEN': 5, + 'RED': 6, + 'MSB': 7, +}) +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': 0x0f, + 'INITIAL_POS': (2, 2), + 'MAX_HEALTH': 4, + 'WINS_REQUIRED': 4, +}) + +# Game size constants +TILE_SIZE = (96, 96) +LOCK_HEIGHT = 48 +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) + +# Player States +ACT = 1 +EXAMINE = 2 + +KEYS = AttrDict({ + 'UP': (pgl.K_UP, pgl.K_w, pgl.K_COMMA), + 'DOWN': (pgl.K_DOWN, pgl.K_s, pgl.K_o), + 'LEFT': (pgl.K_LEFT, pgl.K_a), + 'RIGHT': (pgl.K_RIGHT, pgl.K_d, pgl.K_e), + 'NOMOVE': (pgl.K_SPACE,), + + 'SELECT': (pgl.K_RETURN, pgl.K_KP_ENTER), + 'QUIT': (pgl.K_ESCAPE, pgl.K_q), + 'SWITCH': (pgl.K_TAB,), +}) + +# PALETTE + +PALETTE = AttrDict({ + 'BLACK': (0, 0, 0), + 'DARK_RED': (108, 41, 64), + 'DARK_VIOLET': (64, 53, 120), + 'MAGENTA': (217, 60, 240), + 'DARK_GREEN': (19, 87, 64), + 'GREY': (128, 128, 128), + 'BLUE': (38, 151, 240), + 'LIGHT_VIOLET': (191, 180, 248), + 'DARK_OLIVE': (64, 75, 7), + 'ORANGE': (217, 104, 15), + 'PINK': (236, 168, 191), + 'GREEN': (38, 195, 15), + 'LIGHT_OLIVE': (191, 202, 135), + 'LIGHT_TURQUOISE': (147, 214, 191), + 'WHITE': (255, 255, 255), +})