mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-05-10 19:01:50 +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 {
|
struct powerupvars_t {
|
||||||
UINT16 superTimer;
|
UINT16 superTimer;
|
||||||
UINT16 barrierTimer;
|
UINT16 barrierTimer;
|
||||||
|
UINT16 rhythmBadgeTimer;
|
||||||
mobj_t *flickyController;
|
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)
|
if (player->powerup.barrierTimer > 0)
|
||||||
{
|
{
|
||||||
player->powerup.barrierTimer--;
|
player->powerup.barrierTimer--;
|
||||||
|
|
@ -10891,10 +10897,13 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||||
player->flashing = max(player->flashing, 12);
|
player->flashing = max(player->flashing, 12);
|
||||||
player->mo->momz += 4*mapobjectscale;
|
player->mo->momz += 4*mapobjectscale;
|
||||||
|
|
||||||
// Spawn in triangle formation
|
if (!K_PowerUpRemaining(player, POWERUP_BADGE))
|
||||||
Obj_SpawnInstaWhipRecharge(player, 0);
|
{
|
||||||
Obj_SpawnInstaWhipRecharge(player, ANGLE_120);
|
// Spawn in triangle formation
|
||||||
Obj_SpawnInstaWhipRecharge(player, ANGLE_240);
|
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:
|
case POWERUP_BARRIER:
|
||||||
return player->powerup.barrierTimer;
|
return player->powerup.barrierTimer;
|
||||||
|
|
||||||
|
case POWERUP_BADGE:
|
||||||
|
return player->powerup.rhythmBadgeTimer;
|
||||||
|
|
||||||
case POWERUP_SUPERFLICKY:
|
case POWERUP_SUPERFLICKY:
|
||||||
return Obj_SuperFlickySwarmTime(player->powerup.flickyController);
|
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);
|
K_GiveBumpersToPlayer(player, nullptr, 5);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case POWERUP_BADGE:
|
||||||
|
player->powerup.rhythmBadgeTimer += time;
|
||||||
|
break;
|
||||||
|
|
||||||
case POWERUP_SUPERFLICKY:
|
case POWERUP_SUPERFLICKY:
|
||||||
if (K_PowerUpRemaining(player, 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_SMONITOR, player->powerup.superTimer);
|
||||||
simple_drop(POWERUP_BARRIER, player->powerup.barrierTimer);
|
simple_drop(POWERUP_BARRIER, player->powerup.barrierTimer);
|
||||||
|
simple_drop(POWERUP_BADGE, player->powerup.rhythmBadgeTimer);
|
||||||
|
|
||||||
if (K_PowerUpRemaining(player, POWERUP_SUPERFLICKY))
|
if (K_PowerUpRemaining(player, POWERUP_SUPERFLICKY))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -638,6 +638,7 @@ static void P_NetArchivePlayers(savebuffer_t *save)
|
||||||
// powerupvars_t
|
// powerupvars_t
|
||||||
WRITEUINT16(save->p, players[i].powerup.superTimer);
|
WRITEUINT16(save->p, players[i].powerup.superTimer);
|
||||||
WRITEUINT16(save->p, players[i].powerup.barrierTimer);
|
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
|
// powerupvars_t
|
||||||
players[i].powerup.superTimer = READUINT16(save->p);
|
players[i].powerup.superTimer = READUINT16(save->p);
|
||||||
players[i].powerup.barrierTimer = 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
|
//players[i].viewheight = P_GetPlayerViewHeight(players[i]); // scale cannot be factored in at this point
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue