mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Offroad adjustments
- Restored old offroad leniency timer - Allow minor boosts in offroad again (drift sparks, rings, drop dash) - Scale offroad strength with game speed (Hard gets harsher offroad, Easy gets more lenient offroad)
This commit is contained in:
parent
ff66bd2afb
commit
929d26806c
2 changed files with 7 additions and 13 deletions
16
src/k_kart.c
16
src/k_kart.c
|
|
@ -1554,15 +1554,11 @@ static void K_UpdateOffroad(player_t *player)
|
|||
if (offroadstrength)
|
||||
{
|
||||
if (K_CheckOffroadCollide(player->mo, player->mo->subsector->sector) && player->kartstuff[k_offroad] == 0)
|
||||
player->kartstuff[k_offroad] = (TICRATE/2);
|
||||
player->kartstuff[k_offroad] = TICRATE;
|
||||
|
||||
if (player->kartstuff[k_offroad] > 0)
|
||||
{
|
||||
offroad = (offroadstrength << FRACBITS) / (TICRATE/2);
|
||||
|
||||
//if (player->kartstuff[k_growshrinktimer] > 1) // grow slows down half as fast
|
||||
// offroad /= 2;
|
||||
|
||||
offroad = (offroadstrength << FRACBITS) / TICRATE;
|
||||
player->kartstuff[k_offroad] += offroad;
|
||||
}
|
||||
|
||||
|
|
@ -2169,7 +2165,7 @@ static void K_GetKartBoostPower(player_t *player)
|
|||
// Offroad is separate, it's difficult to factor it in with a variable value anyway.
|
||||
if (!(player->kartstuff[k_invincibilitytimer] || player->kartstuff[k_hyudorotimer] || EITHERSNEAKER(player))
|
||||
&& player->kartstuff[k_offroad] >= 0)
|
||||
boostpower = FixedDiv(boostpower, player->kartstuff[k_offroad] + FRACUNIT);
|
||||
boostpower = FixedDiv(boostpower, FixedMul(player->kartstuff[k_offroad] + FRACUNIT, K_GetKartGameSpeedScalar(gamespeed)));
|
||||
|
||||
if (player->kartstuff[k_bananadrag] > TICRATE)
|
||||
boostpower = (4*boostpower)/5;
|
||||
|
|
@ -2189,13 +2185,13 @@ static void K_GetKartBoostPower(player_t *player)
|
|||
if (player->kartstuff[k_invincibilitytimer]) // Invincibility
|
||||
ADDBOOST((3*FRACUNIT)/8, 3*FRACUNIT); // + 37.5% top speed, + 300% acceleration
|
||||
|
||||
if (player->kartstuff[k_startboost] && !player->kartstuff[k_offroad]) // Startup Boost
|
||||
if (player->kartstuff[k_startboost]) // Startup Boost
|
||||
ADDBOOST(FRACUNIT/4, 6*FRACUNIT); // + 25% top speed, + 600% acceleration
|
||||
|
||||
if (player->kartstuff[k_driftboost] && !player->kartstuff[k_offroad]) // Drift Boost
|
||||
if (player->kartstuff[k_driftboost]) // Drift Boost
|
||||
ADDBOOST(FRACUNIT/4, 4*FRACUNIT); // + 25% top speed, + 400% acceleration
|
||||
|
||||
if (player->kartstuff[k_ringboost] && !player->kartstuff[k_offroad]) // Ring Boost
|
||||
if (player->kartstuff[k_ringboost]) // Ring Boost
|
||||
ADDBOOST(FRACUNIT/5, 4*FRACUNIT); // + 20% top speed, + 200% acceleration
|
||||
|
||||
if (player->kartstuff[k_growshrinktimer] > 0) // Grow
|
||||
|
|
|
|||
|
|
@ -7302,9 +7302,7 @@ void T_Friction(friction_t *f)
|
|||
// apparently, all I had to do was comment out part of the next line and
|
||||
// friction works for all mobj's
|
||||
// (or at least MF_PUSHABLEs, which is all I care about anyway)
|
||||
if ((!(thing->flags & (MF_NOGRAVITY | MF_NOCLIP)) && thing->z == thing->floorz) && (thing->player
|
||||
&& (thing->player->kartstuff[k_invincibilitytimer] == 0 && thing->player->kartstuff[k_hyudorotimer] == 0
|
||||
&& !EITHERSNEAKER(thing->player) && thing->player->kartstuff[k_growshrinktimer] <= 0)))
|
||||
if (!(thing->flags & (MF_NOGRAVITY | MF_NOCLIP)) && thing->z == thing->floorz)
|
||||
{
|
||||
if (f->roverfriction)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue