great value dropdash

This commit is contained in:
Ashnal 2025-09-15 20:44:48 -04:00
parent 5ffc9f54ae
commit 46839fe669
4 changed files with 17 additions and 2 deletions

View file

@ -754,6 +754,7 @@ struct player_t
UINT16 bigwaypointgap; // timer counts down if finish line distance gap is too big to update waypoint
UINT8 startboost; // (0 to 125) - Boost you get from start of race
UINT8 dropdashboost; // Boost you get when holding A while respawning
UINT8 aciddropdashboost; // acid dropdash
UINT16 flashing;
UINT16 spinouttimer; // Spin-out from a banana peel or oil slick (was "pw_bananacam")

View file

@ -1909,7 +1909,7 @@ void K_SpawnDashDustRelease(player_t *player)
if (!P_IsObjectOnGround(player->mo))
return;
if (!player->speed && !player->startboost && !player->spindash && !player->dropdashboost)
if (!player->speed && !player->startboost && !player->spindash && !player->dropdashboost && !player->aciddropdashboost)
return;
travelangle = player->mo->angle;
@ -3780,6 +3780,11 @@ static void K_GetKartBoostPower(player_t *player)
ADDBOOST(FRACUNIT/3, 4*FRACUNIT, HANDLESCALING); // + 33% top speed, + 400% acceleration, +50% handling
}
if (player->aciddropdashboost) // Great value Drop dash
{
ADDBOOST(FRACUNIT/3, 4*FRACUNIT, HANDLESCALING/3); // + 33% top speed, + 400% acceleration, +33% handling, No sliptides here
}
if (player->driftboost) // Drift Boost
{
// Rebuff Eggman's stat block corner
@ -10010,7 +10015,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
if (player->fastfall) // If you elected to supertransfer, you get a small dropdash boost on land
{
S_StartSound(player->mo, sfx_s23c);
player->counterdash = max(player->counterdash, 25);
player->aciddropdashboost = max(player->aciddropdashboost, 35);
K_SpawnDashDustRelease(player);
}
player->fastfall = 0;
@ -10533,6 +10538,9 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
if (player->dropdashboost)
player->dropdashboost--;
if (player->aciddropdashboost)
player->aciddropdashboost--;
if (player->wavedashboost > 0 && onground == true)
{
player->wavedashboost--;

View file

@ -319,6 +319,8 @@ static int player_get(lua_State *L)
lua_pushinteger(L, plr->startboost);
else if (fastcmp(field,"dropdashboost"))
lua_pushinteger(L, plr->dropdashboost);
else if (fastcmp(field,"aciddropdashboost"))
lua_pushinteger(L, plr->aciddropdashboost);
else if (fastcmp(field,"aizdriftstrat"))
lua_pushinteger(L, plr->aizdriftstrat);
else if (fastcmp(field,"aizdriftextend"))
@ -982,6 +984,8 @@ static int player_set(lua_State *L)
plr->startboost = luaL_checkinteger(L, 3);
else if (fastcmp(field,"dropdashboost"))
plr->dropdashboost = luaL_checkinteger(L, 3);
else if (fastcmp(field,"aciddropdashboost"))
plr->aciddropdashboost = luaL_checkinteger(L, 3);
else if (fastcmp(field,"aizdriftstrat"))
plr->aizdriftstrat = luaL_checkinteger(L, 3);
else if (fastcmp(field,"aizdrifttilt"))

View file

@ -468,6 +468,7 @@ static void P_NetArchivePlayers(savebuffer_t *save)
WRITEUINT16(save->p, players[i].bigwaypointgap);
WRITEUINT8(save->p, players[i].startboost);
WRITEUINT8(save->p, players[i].dropdashboost);
WRITEUINT8(save->p, players[i].aciddropdashboost);
WRITEUINT16(save->p, players[i].flashing);
WRITEUINT16(save->p, players[i].spinouttimer);
@ -1145,6 +1146,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save)
players[i].bigwaypointgap = READUINT16(save->p);
players[i].startboost = READUINT8(save->p);
players[i].dropdashboost = READUINT8(save->p);
players[i].aciddropdashboost = READUINT8(save->p);
players[i].flashing = READUINT16(save->p);
players[i].spinouttimer = READUINT16(save->p);