class_name Ball extends RigidBody2D signal kace_contact const brick_layer = 2 const interrupt_speed = 500 const contact_corrector = 3.0 func go_down_unstopped(): linear_velocity.y = interrupt_speed linear_velocity = linear_velocity.normalized() * interrupt_speed set_collision_mask_bit(brick_layer, false) func _integrate_forces(state : Physics2DDirectBodyState): for i in range(state.get_contact_count()): var contact_pos = state.get_contact_local_position(i) var contact_normal = state.get_contact_local_normal(i) var correct_pos = contact_pos - contact_normal * contact_corrector emit_signal("kace_contact", correct_pos) func _on_Launcher_interrupt_wave(): go_down_unstopped()