Esempio n. 1
0
def strike(instance):
    """Strike another entity with your body (fists, fangs, talons etc.)."""

    tick_interval = getattr(instance.tool.props,
                            "cooldown_" + instance.op.parent)
    if tick_interval is not None:
        task = Usage.delay_task_if_needed(
            Fight(instance, tick_interval=tick_interval, name="Unarmed"))
    else:
        task = Usage.delay_task_if_needed(Fight(instance, name="Unarmed"))
    task_op = instance.actor.start_task('melee', task)

    return server.OPERATION_BLOCKED, task_op
Esempio n. 2
0
def strike(instance):
    """Strike another entity with a weapon."""

    # Melee weapons only handles one target
    tick_interval = instance.tool.get_prop_float("cooldown")
    if tick_interval is not None:
        task = Usage.delay_task_if_needed(
            Melee(instance, tick_interval=tick_interval, name="Melee"))
    else:
        task = Usage.delay_task_if_needed(Melee(instance, name="Melee"))
    task_op = instance.actor.start_task('melee', task)

    return server.OPERATION_BLOCKED, task_op
Esempio n. 3
0
def draw(instance):
    usage_name = instance.op.parent

    task = Usage.delay_task_if_needed(DrawBow(instance, tick_interval=1, name="Draw"))

    instance.actor.send_world(Operation("sight", instance.op))

    return server.OPERATION_BLOCKED, instance.actor.start_task(usage_name, task)
Esempio n. 4
0
def draw(instance):
    usage_name = instance.op.parent

    warmup = instance.tool.get_prop_float("warmup", 1.0)
    task = Usage.delay_task_if_needed(DrawBow(instance, tick_interval=warmup, name="Draw"))

    instance.actor.send_world(Operation("sight", instance.op))

    return server.OPERATION_BLOCKED, instance.actor.start_task(usage_name, task)
Esempio n. 5
0
def sow(instance):
    Usage.set_cooldown_on_attached(instance.tool, instance.actor)

    task = Usage.delay_task_if_needed(
        Cultivate(instance, duration=11, tick_interval=1, name="Cultivate"))

    instance.actor.send_world(Operation("sight", instance.op))

    return server.OPERATION_BLOCKED, instance.actor.start_task(
        'cultivate', task)
Esempio n. 6
0
def fish(instance):
    usage_name = instance.op.parent

    task = Usage.delay_task_if_needed(
        Fishing(instance, tick_interval=2, name="Fishing"))

    instance.actor.send_world(Operation("sight", instance.op))

    return server.OPERATION_BLOCKED, instance.actor.start_task(
        usage_name, task)
Esempio n. 7
0
def use(instance):
    usage_name = instance.op.parent

    task = Usage.delay_task_if_needed(
        Use(instance,
            duration=5,
            tick_interval=1,
            name=usage_name.capitalize()))
    Usage.set_cooldown_on_attached(instance.tool, instance.actor)

    instance.actor.send_world(Operation("sight", instance.op))

    return server.OPERATION_BLOCKED, instance.actor.start_task(
        usage_name, task)