Code: Select all
(...)
if(on_ground){
new_slide_vel = this_mo.velocity;
float new_friction = this_mo.GetFriction(this_mo.position + vec3(0.0f,_leg_sphere_size * -0.4f,0.0f));
friction = max(0.01f, friction);
friction = pow(mix(pow(friction,0.01), pow(new_friction,0.01), 0.05f),100);
this_mo.velocity = mix(this_mo.velocity, old_slide_vel, pow(1.0f-friction, num_frames));
old_slide_vel = this_mo.velocity;
if(friction == 1.0001337f && knocked_out = _awake){
permanent_health = 0.0f;
knocked_out = _dead;
}
}
}