Cap overshield stacking from sneaker boosts

Previously the overshield you got from sneaker boosts could stack up to nonsensical amounts of overshield. This revises the behavior as follows:

- Sneakers give you 25 tics of overshield, but will never stack
- Rocket sneakers give you 1/2 second of overshield, but will never stack
- Sneaker panels extend your existing overshield for 1/3 seconds, but cap at 1 full second
This commit is contained in:
eebrozgi 2025-06-02 22:24:19 +03:00 committed by VelocitOni
parent c5366025c6
commit 09dda82aff

View file

@ -7317,15 +7317,17 @@ void K_DoSneaker(player_t *player, INT32 type)
{
case 0: // Panel sneaker
player->panelsneakertimer = sneakertime;
player->overshield += 1;
if (player->overshield > 0) {
player->overshield = min( player->overshield + TICRATE/3, max( TICRATE, player->overshield ));
}
break;
case 1: // Single item sneaker
player->sneakertimer = sneakertime;
player->overshield += TICRATE/2;
player->overshield = max( player->overshield, 25 );
break;
case 2: // Rocket sneaker (aka. weaksneaker)
player->weaksneakertimer = 3*sneakertime/4;
player->overshield += TICRATE/2;
player->overshield = max( player->overshield, TICRATE/2 );
break;
}