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
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
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)
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)
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)
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)
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)