def create_eyemine(x=0, y=0, max_explode_velocity=40): _entity = create(x=x, y=y, group='hazards', sprite_name='eyemine_body.png', speed=35, acceleration=0.1, max_velocity=35) _entity['max_explode_velocity'] = max_explode_velocity effects.create_image(_entity['position'][0], _entity['position'][1], 'eyemine_subbody.png', parent_entity=_entity, rotate_by=3, background=True) effects.create_image(_entity['position'][0], _entity['position'][1], 'eyemine_eye1.png', parent_entity=_entity, background=False) effects.create_image(_entity['position'][0], _entity['position'][1], 'eyemine_eye2.png', parent_entity=_entity, rotate_with_parent=True, background=False) entities.register_event(_entity, 'tick', tick_eyemine) entities.register_event(_entity, 'hit', lambda _entity, target_id, **kwargs: target_id in entities.ENTITIES and entities.trigger_event(_entity, 'set_direction', direction=numbers.direction_to(_entity['position'], entities.get_entity(target_id)['position']))) entities.register_event(_entity, 'hit', lambda _entity, target_id, **kwargs: ai.track_target(_entity, target_id)) entities.register_event(_entity, 'hit_edge', lambda entity: entities.trigger_event(entity, 'kill')) ai.guard(_entity) return _entity
def tick_flea(entity): if not entity['current_target']: entity['current_target'] = ai.find_target(entity) if entity['current_target']: ai.track_target(entity, entity['current_target'])