Nerf ring chains by improving ring burnout performance
Finally its halfed then smoothed down rather then just dropping to 2 then 1. Makes Ring Chains still exist but less broken since you can't chain as large of sections anymore. I need to add better visuals and sound design for this since its much more noticable now.
This commit is contained in:
parent
00f5eca7ae
commit
284a86c7b9
1 changed files with 10 additions and 10 deletions
20
src/k_kart.c
20
src/k_kart.c
|
|
@ -9087,9 +9087,11 @@ INT32 K_GetKartRingPower(const player_t *player, boolean boosted)
|
|||
finalPower += 3;
|
||||
|
||||
// If you use alot of rings at a time, you start gaining less ring timer...
|
||||
if (player->ringtime == finalPower*ringcap)
|
||||
fixed_t burnStart = finalPower*ringcap;
|
||||
fixed_t burnEnd = finalPower*(ringcap+(ringcap/2));
|
||||
if (player->ringtime >= burnStart)
|
||||
{
|
||||
if (P_IsLocalPlayer(player))
|
||||
if (P_IsLocalPlayer(player) && player->ringtime == burnStart)
|
||||
{
|
||||
efx_t efx;
|
||||
S_InitEFXArray(&efx);
|
||||
|
|
@ -9098,14 +9100,12 @@ INT32 K_GetKartRingPower(const player_t *player, boolean boosted)
|
|||
|
||||
S_StartSoundAtVolumeEx(NULL, sfx_cdfm66, 255, &efx);
|
||||
}
|
||||
}
|
||||
else if (player->ringtime > finalPower*(ringcap+(ringcap/2)))
|
||||
{
|
||||
finalPower = 1;
|
||||
}
|
||||
else if (player->ringtime > finalPower*ringcap)
|
||||
{
|
||||
finalPower = 2;
|
||||
|
||||
fixed_t usage = CLAMP(FixedDiv(player->ringtime - burnStart, burnEnd - burnStart), 0, FRACUNIT);
|
||||
|
||||
usage = Easing_OutCubic(usage, finalPower * FRACUNIT, FRACUNIT);
|
||||
|
||||
finalPower = max(usage / FRACUNIT, 1);
|
||||
}
|
||||
|
||||
return finalPower;
|
||||
|
|
|
|||
Loading…
Reference in a new issue