mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-01-07 07:22:54 +00:00
Add Rhythm Badge power-up, no instawhip cooldown
This commit is contained in:
parent
065475ea29
commit
47a5a0b6dc
4 changed files with 24 additions and 4 deletions
|
|
@ -465,6 +465,7 @@ typedef struct {
|
|||
struct powerupvars_t {
|
||||
UINT16 superTimer;
|
||||
UINT16 barrierTimer;
|
||||
UINT16 rhythmBadgeTimer;
|
||||
mobj_t *flickyController;
|
||||
};
|
||||
|
||||
|
|
|
|||
17
src/k_kart.c
17
src/k_kart.c
|
|
@ -8100,6 +8100,12 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
}
|
||||
}
|
||||
|
||||
if (player->powerup.rhythmBadgeTimer > 0)
|
||||
{
|
||||
player->instaShieldCooldown = min(player->instaShieldCooldown, 1);
|
||||
player->powerup.rhythmBadgeTimer--;
|
||||
}
|
||||
|
||||
if (player->powerup.barrierTimer > 0)
|
||||
{
|
||||
player->powerup.barrierTimer--;
|
||||
|
|
@ -10891,10 +10897,13 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
player->flashing = max(player->flashing, 12);
|
||||
player->mo->momz += 4*mapobjectscale;
|
||||
|
||||
// Spawn in triangle formation
|
||||
Obj_SpawnInstaWhipRecharge(player, 0);
|
||||
Obj_SpawnInstaWhipRecharge(player, ANGLE_120);
|
||||
Obj_SpawnInstaWhipRecharge(player, ANGLE_240);
|
||||
if (!K_PowerUpRemaining(player, POWERUP_BADGE))
|
||||
{
|
||||
// Spawn in triangle formation
|
||||
Obj_SpawnInstaWhipRecharge(player, 0);
|
||||
Obj_SpawnInstaWhipRecharge(player, ANGLE_120);
|
||||
Obj_SpawnInstaWhipRecharge(player, ANGLE_240);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,9 @@ tic_t K_PowerUpRemaining(const player_t* player, kartitems_t powerup)
|
|||
case POWERUP_BARRIER:
|
||||
return player->powerup.barrierTimer;
|
||||
|
||||
case POWERUP_BADGE:
|
||||
return player->powerup.rhythmBadgeTimer;
|
||||
|
||||
case POWERUP_SUPERFLICKY:
|
||||
return Obj_SuperFlickySwarmTime(player->powerup.flickyController);
|
||||
|
||||
|
|
@ -39,6 +42,10 @@ void K_GivePowerUp(player_t* player, kartitems_t powerup, tic_t time)
|
|||
K_GiveBumpersToPlayer(player, nullptr, 5);
|
||||
break;
|
||||
|
||||
case POWERUP_BADGE:
|
||||
player->powerup.rhythmBadgeTimer += time;
|
||||
break;
|
||||
|
||||
case POWERUP_SUPERFLICKY:
|
||||
if (K_PowerUpRemaining(player, POWERUP_SUPERFLICKY))
|
||||
{
|
||||
|
|
@ -70,6 +77,7 @@ void K_DropPowerUps(player_t* player)
|
|||
|
||||
simple_drop(POWERUP_SMONITOR, player->powerup.superTimer);
|
||||
simple_drop(POWERUP_BARRIER, player->powerup.barrierTimer);
|
||||
simple_drop(POWERUP_BADGE, player->powerup.rhythmBadgeTimer);
|
||||
|
||||
if (K_PowerUpRemaining(player, POWERUP_SUPERFLICKY))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -638,6 +638,7 @@ static void P_NetArchivePlayers(savebuffer_t *save)
|
|||
// powerupvars_t
|
||||
WRITEUINT16(save->p, players[i].powerup.superTimer);
|
||||
WRITEUINT16(save->p, players[i].powerup.barrierTimer);
|
||||
WRITEUINT16(save->p, players[i].powerup.rhythmBadgeTimer);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1066,6 +1067,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save)
|
|||
// powerupvars_t
|
||||
players[i].powerup.superTimer = READUINT16(save->p);
|
||||
players[i].powerup.barrierTimer = READUINT16(save->p);
|
||||
players[i].powerup.rhythmBadgeTimer = READUINT16(save->p);
|
||||
|
||||
//players[i].viewheight = P_GetPlayerViewHeight(players[i]); // scale cannot be factored in at this point
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue