for i in get_slide_collision_count():
        var c := get_slide_collision(i)
        if c.get_collider() is RigidBody3D:
            var push_dir = -c.get_normal()
            var velocity_diff_in_push_dir = self.velocity.dot(push_dir) - c.get_collider().linear_velocity.dot(push_dir)
            velocity_diff_in_push_dir = max(0.0, velocity_diff_in_push_dir)
            const  MY_APPROX_MASS_KG = 80.0
            var mass_ratio = min(1.0, MY_APPROX_MASS_KG / c.get_collider().mass)
            push_dir.y = 0
            var push_force = mass_ratio * 5.0
            c.get_collider().apply_impulse(push_dir * velocity_diff_in_push_dir * push_force, c.get_position() - c.get_collider().global_position)