mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 12:31:54 +00:00
Merge branch 'defensive-overdrive-leniency' into 'master'
Extend defensive Overdrive until you leave painstate Closes #1452 See merge request KartKrew/Kart!2430
This commit is contained in:
commit
2de94c94c8
4 changed files with 27 additions and 7 deletions
|
|
@ -1047,6 +1047,7 @@ struct player_t
|
||||||
UINT16 overshield;
|
UINT16 overshield;
|
||||||
fixed_t overdrivepower;
|
fixed_t overdrivepower;
|
||||||
UINT8 overdriveready;
|
UINT8 overdriveready;
|
||||||
|
boolean overdrivelenient;
|
||||||
|
|
||||||
UINT8 itemflags; // holds IF_ flags (see itemflags_t)
|
UINT8 itemflags; // holds IF_ flags (see itemflags_t)
|
||||||
|
|
||||||
|
|
|
||||||
27
src/k_kart.c
27
src/k_kart.c
|
|
@ -4102,7 +4102,7 @@ void K_AwardPlayerAmps(player_t *player, UINT8 amps)
|
||||||
{
|
{
|
||||||
// Auto Overdrive!
|
// Auto Overdrive!
|
||||||
// If this is a fresh OD, give 'em some extra juice to make up for lack of flexibility.
|
// If this is a fresh OD, give 'em some extra juice to make up for lack of flexibility.
|
||||||
if (!player->overdrive && player->mo && !P_MobjWasRemoved(player->mo))
|
if (!player->overdrive && player->mo && !P_MobjWasRemoved(player->mo) && player->overdriveready == 0)
|
||||||
{
|
{
|
||||||
S_StartSound(player->mo, sfx_gshac);
|
S_StartSound(player->mo, sfx_gshac);
|
||||||
player->amps *= 2;
|
player->amps *= 2;
|
||||||
|
|
@ -4171,6 +4171,7 @@ boolean K_Overdrive(player_t *player)
|
||||||
|
|
||||||
player->amps = 0;
|
player->amps = 0;
|
||||||
player->overdriveready = 0;
|
player->overdriveready = 0;
|
||||||
|
player->overdrivelenient = false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -4192,6 +4193,8 @@ boolean K_DefensiveOverdrive(player_t *player)
|
||||||
player->overdrivepower = FRACUNIT;
|
player->overdrivepower = FRACUNIT;
|
||||||
|
|
||||||
player->amps = 0;
|
player->amps = 0;
|
||||||
|
player->overdrivelenient = true;
|
||||||
|
player->overdriveready = false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -9313,15 +9316,25 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->overdrive > 0 && onground == true)
|
if (player->overdrivelenient)
|
||||||
{
|
{
|
||||||
player->overdrive--;
|
// This is a Defensive Overdrive and shouldn't start deducting time until we recover
|
||||||
|
if (!P_PlayerInPain(player))
|
||||||
|
player->overdrivelenient = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (player->overdrive > 0 && onground == true)
|
||||||
|
{
|
||||||
|
player->overdrive--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (player->overshield > 0 && onground == true)
|
||||||
|
{
|
||||||
|
player->overshield--;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->overshield > 0 && onground == true)
|
|
||||||
{
|
|
||||||
player->overshield--;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player->wavedashboost == 0 || player->wavedashpower > FRACUNIT)
|
if (player->wavedashboost == 0 || player->wavedashpower > FRACUNIT)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -376,6 +376,8 @@ static int player_get(lua_State *L)
|
||||||
lua_pushinteger(L, plr->overdrivepower);
|
lua_pushinteger(L, plr->overdrivepower);
|
||||||
else if (fastcmp(field,"overdriveready"))
|
else if (fastcmp(field,"overdriveready"))
|
||||||
lua_pushinteger(L, plr->overdriveready);
|
lua_pushinteger(L, plr->overdriveready);
|
||||||
|
else if (fastcmp(field,"overdrivelenient"))
|
||||||
|
lua_pushinteger(L, plr->overdrivelenient);
|
||||||
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"))
|
||||||
|
|
@ -960,6 +962,8 @@ static int player_set(lua_State *L)
|
||||||
plr->overdrivepower = luaL_checkinteger(L, 3);
|
plr->overdrivepower = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"overdriveready"))
|
else if (fastcmp(field,"overdriveready"))
|
||||||
plr->overdriveready = luaL_checkinteger(L, 3);
|
plr->overdriveready = luaL_checkinteger(L, 3);
|
||||||
|
else if (fastcmp(field,"overdrivelenient"))
|
||||||
|
plr->overdrivelenient = 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"))
|
||||||
|
|
|
||||||
|
|
@ -601,6 +601,7 @@ static void P_NetArchivePlayers(savebuffer_t *save)
|
||||||
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);
|
WRITEUINT8(save->p, players[i].overdriveready);
|
||||||
|
WRITEUINT8(save->p, players[i].overdrivelenient);
|
||||||
WRITEUINT16(save->p, players[i].speedpunt);
|
WRITEUINT16(save->p, players[i].speedpunt);
|
||||||
WRITEUINT16(save->p, players[i].trickcharge);
|
WRITEUINT16(save->p, players[i].trickcharge);
|
||||||
|
|
||||||
|
|
@ -1224,6 +1225,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save)
|
||||||
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].overdriveready = READUINT8(save->p);
|
||||||
|
players[i].overdrivelenient = 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