def main_game_loop(): global levelmap global levelmapobjs global levelmapobjs_coords global dungeon global con global inventory_manager con = libtcod.console_new(SCREEN_WIDTH, SCREEN_HEIGHT) panel = libtcod.console_new(SCREEN_WIDTH, PANEL_HEIGHT) player = character.Character(5, 5, '@', libtcod.white, "player", blocks=True) inventory_manager = inventorymanager.InventoryManager(SCREEN_WIDTH, SCREEN_HEIGHT, con) #char = character.Character(5, 5, '@', libtcod.white, "player") """ Right now, just demoing a dungeon. """ #levelmap, levelmapobjs = overworldmap.generate_level_map() levelmap, levelmapobjs = basemap.generate_level_map(player, current_floor) #saveload.save_map(levelmap, levelmapobjs, "testingmapmain") #levelmap, levelmapobjs = saveload.load_map("testingmapmain") """ Initialize fog of war """ for y in xrange(basemap.MAP_HEIGHT): for x in xrange(basemap.MAP_WIDTH): libtcod.map_set_properties(fov_map, x, y, not levelmap[x][y].block_sight, not levelmap[x][y].blocked) """ Coordinates for every object on the overworld map """ for i in levelmapobjs: levelmapobjs_coords.append((i.x, i.y)) dungeon.append((levelmap, levelmapobjs, levelmapobjs_coords)) levelmapobjs.append(player) while not libtcod.console_is_window_closed(): render_all(con, panel, player) libtcod.console_flush() libtcod.console_put_char(0, player.x, player.y, ' ', libtcod.BKGND_NONE) """ Results of the player's key actions. """ key_handler_status = handle_keys(player) move_npcs(player) check_endgame_conditions(player) if key_handler_status == "ok": continue if key_handler_status == "exit": break elif key_handler_status == "down_stairs": move_down_stairs(player)
def move_down_stairs(player): """ Move the player down a level. """ global levelmap, levelmapobjs, levelmapobjs_coords, current_floor global con """ Save the previous map. """ saveload.save_map(levelmap, levelmapobjs, current_floor) current_floor += 1 levelmap, levelmapobjs = basemap.generate_level_map(player, current_floor) levelmapobjs.append(player) """ Coordinates for every object on the overworld map """ for i in levelmapobjs: levelmapobjs_coords.append((i.x, i.y))