6 ' ': {'floor': {'base': 'floor',
7 'behaviour': ['walk', 'fly'],
10 'w': {'floor': {'base': 'cwall',
14 'o': {'tunnels': {'base': 'underground',
18 't': {'tunnels': {'base': 'underground',
22 '-': {'tunnels': {'base': 'tunnel',
23 'behaviour': ['crawl', ],
26 'f': {'floor': {'base': 'floor',
27 'behaviour': ['walk', 'fly'],
30 'd': {'floor': {'base': 'floor',
31 'behaviour': ['walk', 'fly'],
34 'g': {'floor': {'base': 'floor',
35 'behaviour': ['walk', 'fly', 'crawl'],
38 'k': {'floor': {'base': 'floor',
39 'behaviour': ['walk', 'fly'],
42 's': {'floor': {'base': 'floor',
43 'behaviour': ['walk', 'fly'],
49 class level_generator:
55 def convert(self, passage_file, tunnel_file):
57 with open(passage_file) as passages:
58 with open(tunnel_file) as tunnels:
72 level['tileset'] = 'bunker'
74 level['starting pos'] = []
75 level['door_info'] = []
76 level['friendly roaches'] = []
77 level['enemy generators'] = []
79 for l, lu in zip(p, t):
81 for t1, t2 in zip(l, lu):
82 if t1 != '\n' and t2 != '\n':
84 tile = ATTRIBUTE_MAP[t1].copy()
85 tile.update(ATTRIBUTE_MAP[t2])
88 level['starting pos'] = [len(row) - 1, len(level['tiles']) - 1]
90 level['tiles'].append(row)
91 # Crude hack so the level is written into the levels folder
92 name = os.path.join(os.path.dirname(__file__), '..', 'levels', 'map.json')
94 json.dump(level, f, indent=3)
98 if __name__ == '__main__':
100 if len(sys.argv) != 3:
101 print("Usage %s <floor layer> <tunnel layer>" % sys.argv[0])
102 #l.convert('l2', 't2')
104 l.convert(sys.argv[1], sys.argv[2])