Yes, it suggests that I did something wrong… Getting 0.0 should be pretty rare (even rarer than getting 1.0).
I don’t even know why I changed it. Probably selected a wrong number when lowering the dretch damage. Dretch definitely needs to be adapted to grazing hits the most because of its automatic bite which you can’t control. For now I simply increased its rate of fire and lowered the damage.
Nevermind, it’s probably because of the attack width (where you can miss the bbox completely and still hit). Minimum grazing hit damage could use some increase if this becomes a problem.
@lamefun , your latest movement fixes are on the GrangerLab server now. The spitfire seems better, however the jet movement seems jerky. Here is the current PM_JetPackMove() function for swirl:
/*
===================
PM_JetPackMove
Only with the jetpack
===================
*/
static void PM_JetPackMove( void )
{
int i;
vec3_t wishvel;
float wishspeed;
vec3_t wishdir;
float scale;
//normal slowdown
PM_Friction( );
scale = PM_CmdScale( &pm->cmd, qfalse );
// user intentions
for( i = 0; i < 2; i++ )
wishvel[ i ] = scale * pml.forward[ i ] * pm->cmd.forwardmove + scale * pml.right[ i ] * pm->cmd.rightmove;
if( pm->cmd.upmove > 0.0f )
{
vec3_t thrustDir = { 0.0f, 0.0f, 1.0f };
if( pm->ps->viewangles[ PITCH ] > 0.0f )
VectorCopy( pml.up, thrustDir ) ;
// give an initial vertical boost when first activating the jet
if( pm->ps->persistant[PERS_JUMPTIME] <= JETPACK_ACT_BOOST_TIME )
VectorMA( wishvel, JETPACK_ACT_BOOST_SPEED, thrustDir, wishvel );
else
VectorMA( wishvel, JETPACK_FLOAT_SPEED, thrustDir, wishvel );
}
else if( pm->cmd.upmove < 0.0f )
wishvel[ 2 ] = -JETPACK_SINK_SPEED;
else
wishvel[ 2 ] = 0.0f;
// apply the appropirate amount of gravity if the upward velocity is greater
// than the max upward jet velocity.
if( pm->ps->velocity[ 2 ] > wishvel[ 2 ] )
pm->ps->velocity[ 2 ] -= MIN( pm->ps->gravity * pml.frametime, pm->ps->velocity[ 2 ] - wishvel[ 2 ] );
VectorCopy( wishvel, wishdir );
wishspeed = VectorNormalize( wishdir );
PM_WallCoast( wishdir, WALLCOAST_3D );
PM_Accelerate( wishdir, wishspeed, pm_flyaccelerate );
PM_StepSlideMove( qfalse, qfalse );
if( !( pm->ps->persistant[ PERS_STATE ] & PS_NONSEGMODEL ) )
PM_ContinueLegsAnim( LEGS_LAND );
else
PM_ContinueLegsAnim( NSPA_LAND );
// disable bunny hop
pm->ps->pm_flags &= ~PMF_ALL_HOP_FLAGS;
}
After 8 hours of debugging, I managed to fix the jerking jet problem with 2 line changes, and I updated the servers with this fix so that the jet should be playable again. Here is the commit:
Turns out the current implementation of PM_ComputeWallSpeedFactor() doesn’t mix well with the jet.
There has been an issue with the wall coasting that has had a negative impact on the aliens specifically from what i observed. Other players and buildables were treated like walls, and they would be “slippery” when attacking them using melee. So what I did in an update last night is to have wall coasting ignore other players and buildables. (something to consider for another update is have a MIN_WALK_NORMAL customized per class, as I have noticed that the mara has had difficulties passing by various doors/entrances by sliding).
In that same update I made it so that the jump acceleration only applies to jumping forward, which should help address the back peddling issue a bit, and addresses the super slow luci shot.