-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconstants.py
103 lines (90 loc) · 2.65 KB
/
constants.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
from config import *
CELL_WALL = '▓'
CELL_FLOOR = '•'
CELL_CRACK = '⦁'
CELL_BONES = '⸗'
CELL_ROCKS = '◦'
CELL_PLATE = '⎵'
CELL_GATE0 = '★'
CELL_GATE1 = '☆'
CELL_START = '►'
CELL_FINISH = '◄'
CELL_PORTAL = '𝟘'
CELL_SAND = '⧛'
CELL_LOCK1 = '𝟙'
CELL_LOCK2 = '𝟚'
CELL_VOID = '·'
CELL_DIR_L = '←'
CELL_DIR_R = '→'
CELL_DIR_U = '↑'
CELL_DIR_D = '↓'
CELL_SPECIAL0 = '0'
CELL_INTERNAL1 = '1'
CELL_OUTER_WALL = '▒'
CELL_WALL_TYPES = (CELL_WALL, CELL_OUTER_WALL)
CELL_FLOOR_TYPES_RANDGEN = (CELL_CRACK, CELL_BONES, CELL_ROCKS)
CELL_FLOOR_TYPES_FREQUENT = (*CELL_FLOOR_TYPES_RANDGEN, *((CELL_FLOOR,) * EMPTY_FLOOR_FREQUENCY))
CELL_FLOOR_TYPES = (*CELL_FLOOR_TYPES_RANDGEN, CELL_FLOOR)
CELL_FLOOR_EXTENSIONS = (*CELL_FLOOR_TYPES_RANDGEN, CELL_PLATE, CELL_START, CELL_FINISH, CELL_PORTAL, CELL_GATE0, CELL_GATE1, CELL_LOCK1, CELL_LOCK2, CELL_DIR_L, CELL_DIR_R, CELL_DIR_U, CELL_DIR_D)
CELL_ENEMY_PLACE_OBSTACLES = (*CELL_WALL_TYPES, CELL_PORTAL, CELL_START, CELL_FINISH, CELL_GATE0, CELL_GATE1, CELL_SAND, CELL_LOCK1, CELL_LOCK2, CELL_VOID)
CELL_CHAR_PLACE_OBSTACLES = (*CELL_WALL_TYPES, CELL_PLATE, CELL_PORTAL, CELL_GATE0, CELL_GATE1, CELL_SAND, CELL_LOCK1, CELL_LOCK2, CELL_VOID)
CELL_CHAR_MOVE_OBSTACLES = (*CELL_WALL_TYPES, CELL_GATE0, CELL_LOCK1, CELL_LOCK2, CELL_VOID, CELL_DIR_L, CELL_DIR_R, CELL_DIR_U, CELL_DIR_D)
ACTOR_CHARS = {
'heart': '♥',
'sword': '⸸',
'might': '🖠',
'key1': '¹',
'key2': '²',
'enemy': '🕱',
'barrel': '■',
'char': '☻',
}
ACTOR_ON_PLATE_CHARS = {
'heart': '♡',
'sword': '⸷',
'might': '🖞',
'key1': '₁',
'key2': '₂',
'enemy': '☠',
'barrel': '□',
'char': '☺',
}
ACTOR_AND_PLATE_BY_CHAR = {v: (k, v != ACTOR_CHARS[k]) for k, v in {*ACTOR_CHARS.items(), *ACTOR_ON_PLATE_CHARS.items(),}}
LIFT_A = 'a'
LIFT_H = 'h'
LIFT_V = 'v'
LIFT_L = 'l'
LIFT_R = 'r'
LIFT_U = 'u'
LIFT_D = 'd'
LIFT_CHARS = {
LIFT_A: '✥',
LIFT_H: '↔',
LIFT_V: '↕',
LIFT_L: '←',
LIFT_R: '→',
LIFT_U: '↑',
LIFT_D: '↓',
}
LIFT_TYPE_DIRECTIONS = {
LIFT_A: [(-1, 0), (+1, 0), (0, -1), (0, +1)],
LIFT_H: [(-1, 0), (+1, 0)],
LIFT_V: [(0, -1), (0, +1)],
LIFT_L: [(-1, 0)],
LIFT_R: [(+1, 0)],
LIFT_U: [(0, -1)],
LIFT_D: [(0, +1)],
}
LIFT_TYPES = *LIFT_TYPE_DIRECTIONS,
LIFT_TYPES_BY_CHAR = {v: k for k, v in LIFT_CHARS.items()}
MAX_COLOR_PUZZLE_VALUES = 6
COLOR_PUZZLE_VALUE_OUTSIDE = -1
COLOR_PUZZLE_VALUE_PLATE = -2
COLOR_PUZZLE_VALUE_RED = 0
COLOR_PUZZLE_VALUE_GREEN = 1
COLOR_PUZZLE_VALUE_BLUE = 2
COLOR_PUZZLE_VALUE_YELLOW = 3
COLOR_PUZZLE_VALUE_CYAN = 4
COLOR_PUZZLE_VALUE_PURPLE = 5
IMAGES_DIR_PREFIX = 'images/'
DEFAULT_IMAGE_PREFIX = 'default/'