Even less slippery player movement.
This commit is contained in:
parent
588fb5dd8d
commit
a3e7e4a622
3 changed files with 35 additions and 12 deletions
|
|
@ -270,17 +270,39 @@ extend Class Demolitionist
|
|||
nmove *= movefactor;
|
||||
if ( bNOGRAVITY && !player.GetClassicFlight() )
|
||||
{
|
||||
double zpush = nmove.x*sin(pitch);
|
||||
vel.z -= zpush;
|
||||
vel.xy += RotateVector(nmove,angle)*cos(pitch);
|
||||
Vector3 accel;
|
||||
accel.xy = RotateVector(nmove,angle)*cos(pitch);
|
||||
accel.z += nmove.x*sin(-pitch);
|
||||
double maxspd = 16.*TweakSpeed();
|
||||
if ( CanCrouch() && (player.crouchfactor != 1) ) maxspd *= player.crouchfactor;
|
||||
double spd = vel.length();
|
||||
// quicker speedup
|
||||
vel += accel*clamp(maxspd/max(.01,spd),1.,2.);
|
||||
// additional steering + quicker slow down
|
||||
spd = vel.length();
|
||||
if ( spd > maxspd ) spd -= (spd-maxspd)*.1;
|
||||
vel = (vel+accel).unit()*spd;
|
||||
player.vel += RotateVector(nmove,angle)*bobfactor*cos(pitch)*16.;
|
||||
}
|
||||
else
|
||||
else if ( player.onground )
|
||||
{
|
||||
vel.xy += RotateVector(nmove,angle);
|
||||
if ( player.onground ) player.vel += RotateVector(nmove,angle)*bobfactor*16.;
|
||||
else player.vel *= .75;
|
||||
Vector2 accel = RotateVector(nmove,angle);
|
||||
if ( waterlevel > 1 ) vel.xy += accel; // slippery if waist-high or deeper
|
||||
else
|
||||
{
|
||||
double maxspd = 16.*TweakSpeed();
|
||||
if ( CanCrouch() && (player.crouchfactor != 1) ) maxspd *= player.crouchfactor;
|
||||
double spd = vel.xy.length();
|
||||
// quicker speedup
|
||||
vel.xy += accel*clamp(maxspd/max(.01,spd),1.,2.);
|
||||
// additional steering + quicker slow down
|
||||
spd = vel.xy.length();
|
||||
if ( spd > maxspd ) spd -= (spd-maxspd)*.1;
|
||||
vel.xy = (vel.xy+accel).unit()*spd;
|
||||
player.vel += RotateVector(nmove,angle)*bobfactor*16.;
|
||||
}
|
||||
}
|
||||
else player.vel *= .75;
|
||||
// override air control because we REALLY need the extra mobility
|
||||
if ( !player.onground && !bNOGRAVITY )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -305,9 +305,10 @@ extend Class Demolitionist
|
|||
CheckUnderwaterAmb();
|
||||
SenseItems();
|
||||
CheckItemMagnet();
|
||||
if ( vel.length() > mystats.topspeed ) mystats.topspeed = vel.length();
|
||||
if ( vel.length() > ((3600*GameTicRate)/32000.) )
|
||||
SWWMUtility.AchievementProgress("sanic",int((vel.length()*3600*GameTicRate)/32000.),player);
|
||||
double spd = vel.length();
|
||||
if ( spd > mystats.topspeed ) mystats.topspeed = spd;
|
||||
if ( spd > ((3600*GameTicRate)/32000.) )
|
||||
SWWMUtility.AchievementProgress("sanic",int((spd*3600*GameTicRate)/32000.),player);
|
||||
if ( player.onground && !bNoGravity && !lastground )
|
||||
{
|
||||
// bump down weapon
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue