-------
Braking no longer stops on a dime, and instead reduces your speed input. The effect is different between braking and accelerating at the same time, and braking on its own.
Increased 'driftweight' to player->kartweight*14, up from player->kartweight*12.
Changed the base drift curve formula from a range of 447 - 303, to 415 - 303. This will result in a very slightly wider drift arc at low weights. This does not effect the strength of steering while drifting.
Drifting without holding a direction now has a bonus of 0.5 frames, up from 0.
Added kartweight to the required number of drift frames, at half value. Lighter characters take up to 4 additional frames to earn blue sparks, 8 for orange.
This commit is contained in:
ZTsukei 2017-04-20 21:44:56 -04:00
parent 04432f7789
commit cdf8d793bd
3 changed files with 25 additions and 20 deletions

View File

@ -143,16 +143,16 @@ extern FILE *logstream;
#define DEVELOP // Disable this for release builds to remove excessive cheat commands and enable MD5 checking and stuff, all in one go. :3
#ifdef DEVELOP
#define VERSION 103 // Game version
#define SUBVERSION 10 // more precise version number
#define SUBVERSION 11 // more precise version number
#define VERSIONSTRING "Development EXE"
#define VERSIONSTRINGW "v1.3.10"
#define VERSIONSTRINGW "v1.3.11"
// most interface strings are ignored in development mode.
// we use comprevision and compbranch instead.
#else
#define VERSION 103 // Game version
#define SUBVERSION 10 // more precise version number
#define VERSIONSTRING "DevEXE v1.3.10"
#define VERSIONSTRINGW L"v1.3.10"
#define SUBVERSION 11 // more precise version number
#define VERSIONSTRING "DevEXE v1.3.11"
#define VERSIONSTRINGW L"v1.3.11"
// Hey! If you change this, add 1 to the MODVERSION below!
// Otherwise we can't force updates!
#endif

View File

@ -1306,9 +1306,10 @@ fixed_t K_GetKartSpeed(player_t *player, boolean doboostpower)
static fixed_t K_GetKartAccel(player_t *player)
{
fixed_t k_accel = 36;
fixed_t k_accel = 32; // 36;
k_accel += 3 * (9 - player->kartspeed); // 36 - 60
//k_accel += 3 * (9 - player->kartspeed); // 36 - 60
k_accel += 4 * (9 - player->kartspeed); // 32 - 64
return FixedMul(k_accel, K_GetKartBoostPower(player, false));
}
@ -1948,7 +1949,7 @@ static void K_DoLightning(player_t *player, boolean bluelightning)
static INT16 K_GetKartDriftValue(player_t *player, fixed_t countersteer)
{
INT16 basedrift, driftangle;
fixed_t driftweight = player->kartweight*12;
fixed_t driftweight = player->kartweight*14; // 12
// If they aren't drifting or on the ground this doesn't apply
if (player->kartstuff[k_drift] == 0 || !P_IsObjectOnGround(player->mo))
@ -1959,9 +1960,9 @@ static INT16 K_GetKartDriftValue(player_t *player, fixed_t countersteer)
return -266*player->kartstuff[k_drift]; // Drift has ended and we are tweaking their angle back a bit
}
//basedrift = 90*player->kartstuff[k_drift];
//basedrift = 94*player->kartstuff[k_drift] - driftweight*player->kartstuff[k_drift]/3;
basedrift = 93*player->kartstuff[k_drift] - driftweight*3*player->kartstuff[k_drift]/10;
//basedrift = 90*player->kartstuff[k_drift]; // 450
//basedrift = 93*player->kartstuff[k_drift] - driftweight*3*player->kartstuff[k_drift]/10; // 447 - 303
basedrift = 83*player->kartstuff[k_drift] - (driftweight - 14)*player->kartstuff[k_drift]/5; // 415 - 303
driftangle = abs((252 - driftweight)*player->kartstuff[k_drift]/5);
return basedrift + FixedMul(driftangle, countersteer);
@ -1998,8 +1999,8 @@ INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue)
static void K_KartDrift(player_t *player, boolean onground)
{
// IF YOU CHANGE THESE: MAKE SURE YOU UPDATE THE SAME VALUES IN p_mobjc, "case MT_DRIFT:"
fixed_t dsone = 52 + player->kartspeed; // 53 - 61
fixed_t dstwo = dsone*2; // 106 - 122
fixed_t dsone = 26*4 + player->kartspeed*2 + (9 - player->kartweight);
fixed_t dstwo = dsone*2;
// Drifting is actually straffing + automatic turning.
// Holding the Jump button will enable drifting.
@ -2069,7 +2070,7 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_spinouttimer] == 0 && player->kartstuff[k_jmp] == 1 && onground
&& player->kartstuff[k_drift] != 0)
{
fixed_t driftadditive = 1;
fixed_t driftadditive = 3;
if (player->kartstuff[k_drift] >= 1) // Drifting to the left
{
@ -2077,8 +2078,10 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_drift] > 5)
player->kartstuff[k_drift] = 5;
if (player->cmd.buttons & BT_DRIFTLEFT)
driftadditive = 2;
if (player->cmd.buttons & BT_DRIFTLEFT) // Inward
driftadditive++;
if (player->cmd.buttons & BT_DRIFTRIGHT) // Outward
driftadditive--;
}
else if (player->kartstuff[k_drift] <= -1) // Drifting to the right
{
@ -2086,8 +2089,10 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_drift] < -5)
player->kartstuff[k_drift] = -5;
if (player->cmd.buttons & BT_DRIFTRIGHT)
driftadditive = 2;
if (player->cmd.buttons & BT_DRIFTRIGHT) // Inward
driftadditive++;
if (player->cmd.buttons & BT_DRIFTLEFT) // Outward
driftadditive--;
}
// This spawns the drift sparks

View File

@ -6405,8 +6405,8 @@ void P_MobjThinker(mobj_t *mobj)
//{ SRB2kart mobs
case MT_DRIFT:
{
fixed_t dsone = 52 + mobj->target->player->kartspeed; // 53 - 61
fixed_t dstwo = dsone*2; // 106 - 122
fixed_t dsone = 26*4 + mobj->target->player->kartspeed*2 + (9 - mobj->target->player->kartweight);
fixed_t dstwo = dsone*2;
if ((mobj->target && mobj->target->player && mobj->target->player->mo && mobj->target->player->health > 0 && !mobj->target->player->spectator)
&& (mobj->type == MT_DRIFT && mobj->target->player->kartstuff[k_driftcharge] >= dsone))
{