mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-26 20:11:47 +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 overdrive;
|
||||||
UINT16 overshield;
|
UINT16 overshield;
|
||||||
fixed_t overdrivepower;
|
fixed_t overdrivepower;
|
||||||
|
UINT8 overdriveready;
|
||||||
|
|
||||||
UINT8 itemflags; // holds IF_ flags (see itemflags_t)
|
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)
|
if (player->amps == 0)
|
||||||
return false;
|
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_SpawnDriftBoostExplosion(player, 3);
|
||||||
K_SpawnDriftElectricSparks(player, player->skincolor, true);
|
K_SpawnDriftElectricSparks(player, player->skincolor, true);
|
||||||
S_StartSound(player->mo, sfx_cdfm35);
|
S_StartSound(player->mo, sfx_cdfm35);
|
||||||
|
|
@ -4135,6 +4144,7 @@ boolean K_Overdrive(player_t *player)
|
||||||
player->overdrivepower = FRACUNIT;
|
player->overdrivepower = FRACUNIT;
|
||||||
|
|
||||||
player->amps = 0;
|
player->amps = 0;
|
||||||
|
player->overdriveready = 0;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -9183,6 +9193,17 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
player->wavedashboost--;
|
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)
|
if (player->overdrive > 0 && onground == true)
|
||||||
{
|
{
|
||||||
player->overdrive--;
|
player->overdrive--;
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,8 @@ Make sure this matches the actual number of states
|
||||||
#define MINCOMBOFLOAT (mapobjectscale*1)
|
#define MINCOMBOFLOAT (mapobjectscale*1)
|
||||||
#define MAXCOMBOTIME (TICRATE*4)
|
#define MAXCOMBOTIME (TICRATE*4)
|
||||||
|
|
||||||
|
#define OVERDRIVE_STARTUP (0)
|
||||||
|
|
||||||
#define AMPLEVEL (30)
|
#define AMPLEVEL (30)
|
||||||
|
|
||||||
#define FLAMESHIELD_MAX (120)
|
#define FLAMESHIELD_MAX (120)
|
||||||
|
|
|
||||||
|
|
@ -374,6 +374,8 @@ static int player_get(lua_State *L)
|
||||||
lua_pushinteger(L, plr->wavedashpower);
|
lua_pushinteger(L, plr->wavedashpower);
|
||||||
else if (fastcmp(field,"overdrivepower"))
|
else if (fastcmp(field,"overdrivepower"))
|
||||||
lua_pushinteger(L, plr->overdrivepower);
|
lua_pushinteger(L, plr->overdrivepower);
|
||||||
|
else if (fastcmp(field,"overdriveready"))
|
||||||
|
lua_pushinteger(L, plr->overdriveready);
|
||||||
else if (fastcmp(field,"speedpunt"))
|
else if (fastcmp(field,"speedpunt"))
|
||||||
lua_pushinteger(L, plr->speedpunt);
|
lua_pushinteger(L, plr->speedpunt);
|
||||||
else if (fastcmp(field,"trickcharge"))
|
else if (fastcmp(field,"trickcharge"))
|
||||||
|
|
@ -950,6 +952,8 @@ static int player_set(lua_State *L)
|
||||||
plr->wavedashpower = luaL_checkinteger(L, 3);
|
plr->wavedashpower = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"overdrivepower"))
|
else if (fastcmp(field,"overdrivepower"))
|
||||||
plr->overdrivepower = luaL_checkinteger(L, 3);
|
plr->overdrivepower = luaL_checkinteger(L, 3);
|
||||||
|
else if (fastcmp(field,"overdriveready"))
|
||||||
|
plr->overdriveready = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"speedpunt"))
|
else if (fastcmp(field,"speedpunt"))
|
||||||
plr->speedpunt = luaL_checkinteger(L, 3);
|
plr->speedpunt = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"trickcharge"))
|
else if (fastcmp(field,"trickcharge"))
|
||||||
|
|
|
||||||
|
|
@ -151,12 +151,12 @@ void Obj_AmpBodyThink (mobj_t *amps)
|
||||||
amps->angle = amps->target->angle;
|
amps->angle = amps->target->angle;
|
||||||
amps->renderflags |= RF_ADD|RF_FULLBRIGHT;
|
amps->renderflags |= RF_ADD|RF_FULLBRIGHT;
|
||||||
|
|
||||||
if (player->overdrive)
|
if (player->overdrive || player->overdriveready)
|
||||||
amps->renderflags &= ~RF_DONTDRAW;
|
amps->renderflags &= ~RF_DONTDRAW;
|
||||||
else
|
else
|
||||||
amps->renderflags |= RF_DONTDRAW;
|
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;
|
amps->renderflags |= RF_DONTDRAW;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -587,6 +587,7 @@ static void P_NetArchivePlayers(savebuffer_t *save)
|
||||||
WRITEUINT16(save->p, players[i].overshield);
|
WRITEUINT16(save->p, players[i].overshield);
|
||||||
WRITEFIXED(save->p, players[i].wavedashpower);
|
WRITEFIXED(save->p, players[i].wavedashpower);
|
||||||
WRITEFIXED(save->p, players[i].overdrivepower);
|
WRITEFIXED(save->p, players[i].overdrivepower);
|
||||||
|
WRITEUINT8(save->p, players[i].overdriveready);
|
||||||
WRITEUINT16(save->p, players[i].speedpunt);
|
WRITEUINT16(save->p, players[i].speedpunt);
|
||||||
WRITEUINT16(save->p, players[i].trickcharge);
|
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].overshield = READUINT16(save->p);
|
||||||
players[i].wavedashpower = READFIXED(save->p);
|
players[i].wavedashpower = READFIXED(save->p);
|
||||||
players[i].overdrivepower = READFIXED(save->p);
|
players[i].overdrivepower = READFIXED(save->p);
|
||||||
|
players[i].overdriveready = READUINT8(save->p);
|
||||||
players[i].speedpunt = READUINT16(save->p);
|
players[i].speedpunt = READUINT16(save->p);
|
||||||
players[i].trickcharge = READUINT16(save->p);
|
players[i].trickcharge = READUINT16(save->p);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue