mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-12-26 09:52:33 +00:00
Negative edge Overdrive
This commit is contained in:
parent
5f7d08fd3c
commit
01dcfafe5c
6 changed files with 32 additions and 2 deletions
|
|
@ -1038,6 +1038,7 @@ struct player_t
|
|||
UINT16 overdrive;
|
||||
UINT16 overshield;
|
||||
fixed_t overdrivepower;
|
||||
UINT8 overdriveready;
|
||||
|
||||
UINT8 itemflags; // holds IF_ flags (see itemflags_t)
|
||||
|
||||
|
|
|
|||
21
src/k_kart.c
21
src/k_kart.c
|
|
@ -4125,6 +4125,15 @@ boolean K_Overdrive(player_t *player)
|
|||
if (player->amps == 0)
|
||||
return false;
|
||||
|
||||
if (player->cmd.buttons & BT_ATTACK)
|
||||
{
|
||||
player->overdriveready = OVERDRIVE_STARTUP + 2; // Activates on 1, decremented BEFORE we call this again
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player->overdriveready > 1)
|
||||
return false;
|
||||
|
||||
K_SpawnDriftBoostExplosion(player, 3);
|
||||
K_SpawnDriftElectricSparks(player, player->skincolor, true);
|
||||
S_StartSound(player->mo, sfx_cdfm35);
|
||||
|
|
@ -4135,6 +4144,7 @@ boolean K_Overdrive(player_t *player)
|
|||
player->overdrivepower = FRACUNIT;
|
||||
|
||||
player->amps = 0;
|
||||
player->overdriveready = 0;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -9183,6 +9193,17 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
player->wavedashboost--;
|
||||
}
|
||||
|
||||
if (player->overdriveready)
|
||||
{
|
||||
if (player->amps == 0 || player->rings > 0)
|
||||
player->overdriveready = 0;
|
||||
else
|
||||
{
|
||||
player->overdriveready--;
|
||||
K_Overdrive(player);
|
||||
}
|
||||
}
|
||||
|
||||
if (player->overdrive > 0 && onground == true)
|
||||
{
|
||||
player->overdrive--;
|
||||
|
|
|
|||
|
|
@ -50,6 +50,8 @@ Make sure this matches the actual number of states
|
|||
#define MINCOMBOFLOAT (mapobjectscale*1)
|
||||
#define MAXCOMBOTIME (TICRATE*4)
|
||||
|
||||
#define OVERDRIVE_STARTUP (0)
|
||||
|
||||
#define AMPLEVEL (30)
|
||||
|
||||
#define FLAMESHIELD_MAX (120)
|
||||
|
|
|
|||
|
|
@ -374,6 +374,8 @@ static int player_get(lua_State *L)
|
|||
lua_pushinteger(L, plr->wavedashpower);
|
||||
else if (fastcmp(field,"overdrivepower"))
|
||||
lua_pushinteger(L, plr->overdrivepower);
|
||||
else if (fastcmp(field,"overdriveready"))
|
||||
lua_pushinteger(L, plr->overdriveready);
|
||||
else if (fastcmp(field,"speedpunt"))
|
||||
lua_pushinteger(L, plr->speedpunt);
|
||||
else if (fastcmp(field,"trickcharge"))
|
||||
|
|
@ -950,6 +952,8 @@ static int player_set(lua_State *L)
|
|||
plr->wavedashpower = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"overdrivepower"))
|
||||
plr->overdrivepower = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"overdriveready"))
|
||||
plr->overdriveready = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"speedpunt"))
|
||||
plr->speedpunt = luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"trickcharge"))
|
||||
|
|
|
|||
|
|
@ -151,12 +151,12 @@ void Obj_AmpBodyThink (mobj_t *amps)
|
|||
amps->angle = amps->target->angle;
|
||||
amps->renderflags |= RF_ADD|RF_FULLBRIGHT;
|
||||
|
||||
if (player->overdrive)
|
||||
if (player->overdrive || player->overdriveready)
|
||||
amps->renderflags &= ~RF_DONTDRAW;
|
||||
else
|
||||
amps->renderflags |= RF_DONTDRAW;
|
||||
|
||||
if (player->overdrive < 35 && player->overdrive % 2)
|
||||
if ((player->overdrive < 35 && player->overdrive % 2) || (player->overdriveready && leveltime % 2))
|
||||
amps->renderflags |= RF_DONTDRAW;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -587,6 +587,7 @@ static void P_NetArchivePlayers(savebuffer_t *save)
|
|||
WRITEUINT16(save->p, players[i].overshield);
|
||||
WRITEFIXED(save->p, players[i].wavedashpower);
|
||||
WRITEFIXED(save->p, players[i].overdrivepower);
|
||||
WRITEUINT8(save->p, players[i].overdriveready);
|
||||
WRITEUINT16(save->p, players[i].speedpunt);
|
||||
WRITEUINT16(save->p, players[i].trickcharge);
|
||||
|
||||
|
|
@ -1201,6 +1202,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save)
|
|||
players[i].overshield = READUINT16(save->p);
|
||||
players[i].wavedashpower = READFIXED(save->p);
|
||||
players[i].overdrivepower = READFIXED(save->p);
|
||||
players[i].overdriveready = READUINT8(save->p);
|
||||
players[i].speedpunt = READUINT16(save->p);
|
||||
players[i].trickcharge = READUINT16(save->p);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue