Beispiel #1
0
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()
Beispiel #2
0
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
Beispiel #3
0
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]