def next_level(): message('You take a moment to rest, and recover your strength', color.light_violet) settings.player.fighter.heal(settings.player.fighter.max_hp / 2) settings.dungeon_level += 1 message('After a rare moment of peace, you descend deeper into ' + 'the heart of the dungeon...', color.red) (cx, cy) = Rect(0, 0, settings.MAP_WIDTH, settings.MAP_HEIGHT).center if settings.stairs.x < cx: cx = 0 else: cx = 1 if settings.stairs.y < cy: cy = 0 else: cy = 2 make_map(cx + cy) initialize_fov()
def new_game(): fighter_component = Fighter(hp=30, defense=2, power=5, xp=0, death_function=player_death) settings.player = Object(0, 0, '@', 'player', color.white, blocks=True, fighter=fighter_component) settings.player.level = 1 settings.dungeon_level = 1 make_map() handle_keys.initialize_fov() settings.game_state = 'playing' settings.inventory = [] settings.game_msgs = [] message('Welcome stranger. Prepare to perish in the ' + 'Tombs of the Ancient Kings.', color.red) equipment_component = Equipment(slot='right hand', power_bonus=2) obj = Object(0, 0, '-', 'dagger', color.sky, equipment=equipment_component) settings.inventory.append(obj) equipment_component.equip() obj.always_visible = True
def new_level(): global map, player, stairs, depth, objects, TURN_CLOCK, SCHEDULE depth += 1 objects = [] map, rooms = map_gen.make_map(MAP_WIDTH, MAP_HEIGHT) for room in rooms: place_objects(room) player.x, player.y = 0, 0 while is_blocked(player.x, player.y): player.x, player.y = dice.roll('1d'+ str(MAP_WIDTH) + '-1')[0], dice.roll('1d' + str(MAP_HEIGHT) + '-1')[0] objects += [player] stair_x, stair_y = 0, 0 while is_blocked(stair_x, stair_y): stair_x, stair_y = dice.roll('1d'+ str(MAP_WIDTH) + '-1')[0], dice.roll('1d' + str(MAP_HEIGHT) + '-1')[0] map[stair_x][stair_y].char = '>' stairs = (stair_x, stair_y) initialize_fov() TURN_CLOCK = 0L SCHEDULE = { } for item in objects: if item.fighter.speed() not in SCHEDULE: SCHEDULE[item.fighter.speed()] = [item] else: SCHEDULE[item.fighter.speed()] += [item]