mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-26 12:01:47 +00:00
Merge branch 'sneaker-panel-overshield-oopsie' into 'master'
Cleanup for various rocket sneaker boost type separation related issues See merge request kart-krew-dev/ring-racers-internal!2612
This commit is contained in:
commit
176e8c3f3d
3 changed files with 27 additions and 6 deletions
|
|
@ -531,7 +531,7 @@ static void K_BotItemSneaker(const player_t *player, ticcmd_t *cmd)
|
||||||
|| player->speedboost > (FRACUNIT/8) // Have another type of boost (tethering)
|
|| player->speedboost > (FRACUNIT/8) // Have another type of boost (tethering)
|
||||||
|| player->botvars.itemconfirm > 4*TICRATE) // Held onto it for too long
|
|| player->botvars.itemconfirm > 4*TICRATE) // Held onto it for too long
|
||||||
{
|
{
|
||||||
if (player->sneakertimer == 0 && K_ItemButtonWasDown(player) == false)
|
if (player->sneakertimer == 0 && player->weaksneakertimer == 0 && K_ItemButtonWasDown(player) == false)
|
||||||
{
|
{
|
||||||
cmd->buttons |= BT_ATTACK;
|
cmd->buttons |= BT_ATTACK;
|
||||||
//player->botvars.itemconfirm = 2*TICRATE;
|
//player->botvars.itemconfirm = 2*TICRATE;
|
||||||
|
|
@ -567,7 +567,7 @@ static void K_BotItemRocketSneaker(const player_t *player, ticcmd_t *cmd)
|
||||||
|
|
||||||
if (player->botvars.itemconfirm > TICRATE)
|
if (player->botvars.itemconfirm > TICRATE)
|
||||||
{
|
{
|
||||||
if (player->sneakertimer == 0 && K_ItemButtonWasDown(player) == false)
|
if (player->sneakertimer == 0 && player->weaksneakertimer == 0 && K_ItemButtonWasDown(player) == false)
|
||||||
{
|
{
|
||||||
cmd->buttons |= BT_ATTACK;
|
cmd->buttons |= BT_ATTACK;
|
||||||
//player->botvars.itemconfirm = 0;
|
//player->botvars.itemconfirm = 0;
|
||||||
|
|
@ -1605,7 +1605,7 @@ static void K_BotItemIceCube(const player_t *player, ticcmd_t *cmd)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->sneakertimer)
|
if (player->sneakertimer || player->weaksneakertimer)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
19
src/k_kart.c
19
src/k_kart.c
|
|
@ -3077,7 +3077,8 @@ tripwirepass_t K_TripwirePassConditions(const player_t *player)
|
||||||
{
|
{
|
||||||
if (
|
if (
|
||||||
player->invincibilitytimer ||
|
player->invincibilitytimer ||
|
||||||
player->sneakertimer
|
player->sneakertimer ||
|
||||||
|
player->weaksneakertimer
|
||||||
)
|
)
|
||||||
return TRIPWIRE_BLASTER;
|
return TRIPWIRE_BLASTER;
|
||||||
|
|
||||||
|
|
@ -7219,6 +7220,7 @@ static void K_FlameDashLeftoverSmoke(mobj_t *src)
|
||||||
void K_DoSneaker(player_t *player, INT32 type)
|
void K_DoSneaker(player_t *player, INT32 type)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
INT32 originaltype = type;
|
||||||
fixed_t intendedboost = FRACUNIT/2;
|
fixed_t intendedboost = FRACUNIT/2;
|
||||||
|
|
||||||
// If you've already got an rocket sneaker type boost, panel sneakers will instead turn into rocket sneaker boosts
|
// If you've already got an rocket sneaker type boost, panel sneakers will instead turn into rocket sneaker boosts
|
||||||
|
|
@ -7323,16 +7325,27 @@ void K_DoSneaker(player_t *player, INT32 type)
|
||||||
{
|
{
|
||||||
case 0: // Panel sneaker
|
case 0: // Panel sneaker
|
||||||
player->panelsneakertimer = sneakertime;
|
player->panelsneakertimer = sneakertime;
|
||||||
|
break;
|
||||||
|
case 1: // Single item sneaker
|
||||||
|
player->sneakertimer = sneakertime;
|
||||||
|
break;
|
||||||
|
case 2: // Rocket sneaker (aka. weaksneaker)
|
||||||
|
player->weaksneakertimer = 3*sneakertime/4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Give invincibility based on the ACTUAL boost type used, not the "promoted" boost type
|
||||||
|
switch (originaltype)
|
||||||
|
{
|
||||||
|
case 0: // Panel sneaker
|
||||||
if (player->overshield > 0) {
|
if (player->overshield > 0) {
|
||||||
player->overshield = min( player->overshield + TICRATE/3, max( TICRATE, player->overshield ));
|
player->overshield = min( player->overshield + TICRATE/3, max( TICRATE, player->overshield ));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1: // Single item sneaker
|
case 1: // Single item sneaker
|
||||||
player->sneakertimer = sneakertime;
|
|
||||||
player->overshield = max( player->overshield, 25 );
|
player->overshield = max( player->overshield, 25 );
|
||||||
break;
|
break;
|
||||||
case 2: // Rocket sneaker (aka. weaksneaker)
|
case 2: // Rocket sneaker (aka. weaksneaker)
|
||||||
player->weaksneakertimer = 3*sneakertime/4;
|
|
||||||
player->overshield = max( player->overshield, TICRATE/2 );
|
player->overshield = max( player->overshield, TICRATE/2 );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1124,6 +1124,14 @@ static int player_set(lua_State *L)
|
||||||
plr->sneakertimer = luaL_checkinteger(L, 3);
|
plr->sneakertimer = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"numsneakers"))
|
else if (fastcmp(field,"numsneakers"))
|
||||||
plr->numsneakers = luaL_checkinteger(L, 3);
|
plr->numsneakers = luaL_checkinteger(L, 3);
|
||||||
|
else if (fastcmp(field,"panelsneakertimer"))
|
||||||
|
plr->panelsneakertimer = luaL_checkinteger(L, 3);
|
||||||
|
else if (fastcmp(field,"numpanelsneakers"))
|
||||||
|
plr->numpanelsneakers = luaL_checkinteger(L, 3);
|
||||||
|
else if (fastcmp(field,"weaksneakertimer"))
|
||||||
|
plr->weaksneakertimer = luaL_checkinteger(L, 3);
|
||||||
|
else if (fastcmp(field,"numweaksneakers"))
|
||||||
|
plr->numweaksneakers = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"floorboost"))
|
else if (fastcmp(field,"floorboost"))
|
||||||
plr->floorboost = luaL_checkinteger(L, 3);
|
plr->floorboost = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"growshrinktimer"))
|
else if (fastcmp(field,"growshrinktimer"))
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue