X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fconstants.py;h=0388d43303c26ae37981a6a5816aa3198aa64389;hb=2adfd2622a4b49cf31f7b9b0e564beb5a4afb040;hp=3f45496558320aac8e3084829879cd5800404b52;hpb=2be70af38592f9eab413e3fe5823cc3e6b00e3de;p=naja.git diff --git a/naja/constants.py b/naja/constants.py index 3f45496..0388d43 100644 --- a/naja/constants.py +++ b/naja/constants.py @@ -5,14 +5,20 @@ from naja.attrdict import AttrDict SCREEN = (800, 600) FPS = 40 -FONT = '4x6.pcf' +FONT = '8x13.pcf' FONT_SIZE = 16 -EIGHT_BIT_SCALE = 4 +EIGHT_BIT_SCALE = 2 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 @@ -24,24 +30,41 @@ DEFAULT_SOUND_VOLUME = 1.0 # sound volume DEFAULT_MUSIC_VOLUME = 0.3 # music volume # Player bits -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({ + 'NORTH': 0, + 'SOUTH': 1, + 'EAST': 2, + 'WEST': 3, +}) +CONDITION_BITS = AttrDict({ + 'BLUE': 4, + 'GREEN': 5, + 'RED': 6, + 'MSB': 7, +}) +BITS = AttrDict() +BITS.update(DIRECTION_BITS) +BITS.update(CONDITION_BITS) + +# PLAYER MOVES +MOVES = AttrDict({ + # Default move + 'ADJACENT': 0, + # Chess moves + 'KNIGHT': 1, + 'BISHOP': 2, + 'CASTLE': 3, +}) +CHESS_PIECES = AttrDict((k, v) for k, v in MOVES.items() if v > 0) + +ROTATION = AttrDict({ + 'CLOCKWISE': 0, + 'ANTICLOCKWISE': 1, }) -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_BITS': 0x0f, 'INITIAL_POS': (2, 2), 'MAX_HEALTH': 4, 'WINS_REQUIRED': 4, @@ -49,22 +72,92 @@ PLAYER_DEFAULTS = AttrDict({ # Game size constants TILE_SIZE = (96, 96) -LOCK_HEIGHT = 48 +LOCK_HEIGHT = 32 +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 -MOVE = 1 -ACT = 2 +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,), + + 'KONAMI': ( + pgl.K_UP, pgl.K_DOWN, pgl.K_LEFT, pgl.K_RIGHT, pgl.K_a, pgl.K_b), +}) + +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), + '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), +}) + + +ACTION_GLYPHS = AttrDict({ + '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' +)