mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'bubble-mash' into 'master'
Bubble shield mash limit (resolves #1613) Closes #1613 See merge request kart-krew-dev/ring-racers-internal!2712
This commit is contained in:
commit
47248f2030
1 changed files with 14 additions and 2 deletions
16
src/p_mobj.c
16
src/p_mobj.c
|
|
@ -9821,6 +9821,15 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
mobj->flags = MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_NOGRAVITY|MF_DONTENCOREMAP;
|
mobj->flags = MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_NOGRAVITY|MF_DONTENCOREMAP;
|
||||||
mobj->extravalue1 = 1;
|
mobj->extravalue1 = 1;
|
||||||
|
|
||||||
|
// Mash speed limit
|
||||||
|
UINT8 MASHPWR = TICRATE/2; // Amount to deduct from timer when mashing
|
||||||
|
UINT8 MAXMASHFREQUENCY = 6; // Nerf fast mashing: allow optimal decay with X inputs per second
|
||||||
|
|
||||||
|
UINT8 ticsbetweenmashing = TICRATE/MAXMASHFREQUENCY;
|
||||||
|
UINT8 decaypertic = MASHPWR / ticsbetweenmashing;
|
||||||
|
if (mobj->cusval)
|
||||||
|
mobj->cusval = max(0, mobj->cusval - decaypertic);
|
||||||
|
|
||||||
mobj->cvmem /= 2;
|
mobj->cvmem /= 2;
|
||||||
mobj->momz = 0;
|
mobj->momz = 0;
|
||||||
mobj->destscale = ((8*mobj->tracer->scale)>>2) + (mobj->tracer->scale>>3);
|
mobj->destscale = ((8*mobj->tracer->scale)>>2) + (mobj->tracer->scale>>3);
|
||||||
|
|
@ -9856,7 +9865,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
mobj->tracer->y + P_ReturnThrustY(NULL, mobj->tracer->angle+ANGLE_90, (mobj->cvmem)<<FRACBITS),
|
mobj->tracer->y + P_ReturnThrustY(NULL, mobj->tracer->angle+ANGLE_90, (mobj->cvmem)<<FRACBITS),
|
||||||
mobj->tracer->z - (4*mobj->tracer->scale) + (P_RandomRange(PR_ITEM_BUBBLE, -abs(mobj->cvmem), abs(mobj->cvmem))<<FRACBITS));
|
mobj->tracer->z - (4*mobj->tracer->scale) + (P_RandomRange(PR_ITEM_BUBBLE, -abs(mobj->cvmem), abs(mobj->cvmem))<<FRACBITS));
|
||||||
|
|
||||||
if (mobj->movecount > 4*TICRATE)
|
if (mobj->movecount > 7*TICRATE/2)
|
||||||
{
|
{
|
||||||
S_StartSound(mobj->tracer, sfx_s3k77);
|
S_StartSound(mobj->tracer, sfx_s3k77);
|
||||||
mobj->tracer->flags &= ~MF_NOGRAVITY;
|
mobj->tracer->flags &= ~MF_NOGRAVITY;
|
||||||
|
|
@ -9877,8 +9886,11 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
if ((player->cmd.turning > 0 && lastsign < 0)
|
if ((player->cmd.turning > 0 && lastsign < 0)
|
||||||
|| (player->cmd.turning < 0 && lastsign > 0))
|
|| (player->cmd.turning < 0 && lastsign > 0))
|
||||||
{
|
{
|
||||||
mobj->movecount += (TICRATE/2);
|
// CONS_Printf("%d -> ", mobj->movecount);
|
||||||
|
mobj->movecount += MASHPWR - mobj->cusval;
|
||||||
|
// CONS_Printf("%d\n", mobj->movecount);
|
||||||
mobj->cvmem = 8*lastsign;
|
mobj->cvmem = 8*lastsign;
|
||||||
|
mobj->cusval = MASHPWR; // Mash speed limit.
|
||||||
S_StartSound(mobj, sfx_s3k7a);
|
S_StartSound(mobj, sfx_s3k7a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue