Ejemplo n.º 1
0
def _dragonseed_ticker(ticker):
    if ticker.ticks >= ticker.max_ticks:
        ticker.dead = True
        ui.message("The dragonweed sapling matures.", libtcod.dark_chartreuse)
        x = ticker.seed.x
        y = ticker.seed.y
        ticker.seed.destroy()
        for obj in main.get_objects(x, y, lambda o: o.blocks):
            t = main.find_closest_open_tile(x, y)
            obj.set_position(t[0], t[1])
        common.summon_ally('monster_dragonweed',
                           10 + libtcod.random_get_int(0, 0, 20), x, y)
Ejemplo n.º 2
0
def shimmering_swords(actor, target, context):
    import pathfinding
    sp = actor.fighter.spell_power(context['element'])
    adjacent = []
    for tile in main.adjacent_tiles_diagonal(actor.x, actor.y):
        if not main.is_blocked(
                tile[0], tile[1], movement_type=pathfinding.FLYING):
            adjacent.append(tile)
    for i in range(context['sword_count']):
        if len(adjacent) < 1:
            break
        summon_pos = adjacent[libtcod.random_get_int(0, 0, len(adjacent) - 1)]
        common.summon_ally(
            'monster_shimmering_sword',
            context['duration_base'] + main.roll_dice('1d%d' % sp),
            summon_pos[0], summon_pos[1])
        adjacent.remove(summon_pos)
Ejemplo n.º 3
0
def summon_arcane_construct(actor, target, context):
    common.summon_ally(
        'monster_arcane_construct',
        duration=context['duration_base'] +
        main.roll_dice('1d%d' % actor.fighter.spell_power(context['element']),
                       normalize_size=4))
Ejemplo n.º 4
0
def summon_lifeplant(actor, target, context):
    return common.summon_ally(
        'monster_lifeplant', context['duration_base'] +
        main.roll_dice(context['duration_variance']))
Ejemplo n.º 5
0
def summon_elemental(actor, target, context):
    return common.summon_ally(
        context['summon'], context['duration_base'] +
        main.roll_dice(context['duration_variance']))
Ejemplo n.º 6
0
def summon_guardian_angel(actor, target, context):
    x,y = target
    common.summon_ally('monster_guardian_angel', 30 + libtcod.random_get_int(0, 0, 15), x, y)
    ui.message('Your prayers have been answered!',libtcod.light_blue)