Grow no longer has a speed boost, but no longer holds the item box hostage

It can now be moved over to "mid-tier" instead of the end. Flame Shield will be taking its place as the "situational but powerful speed-up/offense combo item"
This commit is contained in:
TehRealSalt 2019-05-10 17:04:30 -04:00
parent 5bacbe6222
commit ecaf14a76b
6 changed files with 22 additions and 83 deletions

View file

@ -335,7 +335,6 @@ typedef enum
k_getsparks, // Disable drift sparks at low speed, JUST enough to give acceleration the actual headstart above speed
k_jawztargetdelay, // Delay for Jawz target switching, to make it less twitchy
k_spectatewait, // How long have you been waiting as a spectator
k_growcancel, // Hold the item button down to cancel Grow
NUMKARTSTUFF
} kartstufftype_t;

View file

@ -8471,8 +8471,7 @@ static const char *const KARTSTUFF_LIST[] = {
"ITEMBLINKMODE",
"GETSPARKS",
"JAWZTARGETDELAY",
"SPECTATEWAIT",
"GROWCANCEL"
"SPECTATEWAIT"
};
#endif

View file

@ -1259,7 +1259,7 @@ static void K_KartItemRoulette(player_t *player, ticcmd_t *cmd)
static fixed_t K_GetMobjWeight(mobj_t *mobj, mobj_t *against)
{
fixed_t weight = 5<<FRACBITS;
fixed_t weight = 5*mobj->scale;
switch (mobj->type)
{
@ -1270,7 +1270,7 @@ static fixed_t K_GetMobjWeight(mobj_t *mobj, mobj_t *against)
weight = 0; // Do not bump
else
{
weight = (mobj->player->kartweight)<<FRACBITS;
weight = (mobj->player->kartweight) * mobj->scale;
if (mobj->player->speed > K_GetKartSpeed(mobj->player, false))
weight += (mobj->player->speed - K_GetKartSpeed(mobj->player, false))/8;
}
@ -1282,21 +1282,21 @@ static fixed_t K_GetMobjWeight(mobj_t *mobj, mobj_t *against)
|| against->player->kartstuff[k_growshrinktimer] > 0)
weight = 0;
else
weight = (against->player->kartweight)<<FRACBITS;
weight = (against->player->kartweight) * against->scale;
}
break;
case MT_ORBINAUT:
case MT_ORBINAUT_SHIELD:
if (against->player)
weight = (against->player->kartweight)<<FRACBITS;
weight = (against->player->kartweight) * against->scale;
break;
case MT_JAWZ:
case MT_JAWZ_DUD:
case MT_JAWZ_SHIELD:
if (against->player)
weight = (against->player->kartweight+3)<<FRACBITS;
weight = (against->player->kartweight+3) * against->scale;
else
weight = 8<<FRACBITS;
weight = 8*mobj->scale;
break;
default:
break;
@ -2229,14 +2229,6 @@ static void K_GetKartBoostPower(player_t *player)
if (player->kartstuff[k_ringboost]) // Ring Boost
ADDBOOST(FRACUNIT/5, 4*FRACUNIT); // + 20% top speed, + 400% acceleration
if (player->kartstuff[k_growshrinktimer] > 0) // Grow
{
// Grow's design is weird with booster stacking.
// We'll see how to replace its design BEFORE v2 gets released.
speedboost += (FRACUNIT/5); // + 20%
//numboosts++; // Don't add any boost afterimages to Grow
}
if (player->kartstuff[k_draftpower] > 0) // Drafting
{
speedboost += (player->kartstuff[k_draftpower]) / 3; // + 0 to 33.3% top speed
@ -2545,7 +2537,6 @@ static void K_RemoveGrowShrink(player_t *player)
}
player->kartstuff[k_growshrinktimer] = 0;
player->kartstuff[k_growcancel] = -1;
P_RestoreMusic(player);
}
@ -4820,17 +4811,17 @@ static void K_UpdateInvincibilitySounds(player_t *player)
{
if (cv_kartinvinsfx.value)
{
if (player->kartstuff[k_growshrinktimer] > 0) // Prioritize Grow
sfxnum = sfx_alarmg;
else if (player->kartstuff[k_invincibilitytimer] > 0)
if (player->kartstuff[k_invincibilitytimer] > 0) // Prioritize invincibility
sfxnum = sfx_alarmi;
else if (player->kartstuff[k_growshrinktimer] > 0)
sfxnum = sfx_alarmg;
}
else
{
if (player->kartstuff[k_growshrinktimer] > 0)
sfxnum = sfx_kgrow;
else if (player->kartstuff[k_invincibilitytimer] > 0)
if (player->kartstuff[k_invincibilitytimer] > 0)
sfxnum = sfx_kinvnc;
else if (player->kartstuff[k_growshrinktimer] > 0)
sfxnum = sfx_kgrow;
}
}
@ -5855,7 +5846,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
&& NO_HYUDORO && !(HOLDING_ITEM
|| player->kartstuff[k_itemamount]
|| player->kartstuff[k_itemroulette]
|| player->kartstuff[k_growshrinktimer] // Being disabled during Shrink was unintended but people seemed to be okay with it sooo...
|| player->kartstuff[k_growshrinktimer] < 0 // Being disabled during Shrink was unintended but people seemed to be okay with it sooo...
|| player->kartstuff[k_rocketsneakertimer]
|| player->kartstuff[k_eggmanexplode]))
player->kartstuff[k_userings] = 1;
@ -5952,28 +5943,6 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
player->kartstuff[k_rocketsneakertimer] = 1;
}
}
// Grow Canceling
else if (player->kartstuff[k_growshrinktimer] > 0)
{
if (player->kartstuff[k_growcancel] >= 0)
{
if (cmd->buttons & BT_ATTACK)
{
player->kartstuff[k_growcancel]++;
if (player->kartstuff[k_growcancel] > 26)
K_RemoveGrowShrink(player);
}
else
player->kartstuff[k_growcancel] = 0;
}
else
{
if ((cmd->buttons & BT_ATTACK) || (player->pflags & PF_ATTACKDOWN))
player->kartstuff[k_growcancel] = -1;
else
player->kartstuff[k_growcancel] = 0;
}
}
else if (player->kartstuff[k_itemamount] <= 0)
{
player->kartstuff[k_itemamount] = player->kartstuff[k_itemheld] = 0;
@ -6225,8 +6194,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
}
break;
case KITEM_GROW:
if (ATTACK_IS_DOWN && !HOLDING_ITEM && NO_HYUDORO
&& player->kartstuff[k_growshrinktimer] <= 0) // Grow holds the item box hostage
if (ATTACK_IS_DOWN && !HOLDING_ITEM && NO_HYUDORO)
{
if (player->kartstuff[k_growshrinktimer] < 0) // If you're shrunk, then "grow" will just make you normal again.
K_RemoveGrowShrink(player);
@ -6353,9 +6321,6 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
else
player->kartstuff[k_curshield] = 0;
if (player->kartstuff[k_growshrinktimer] <= 0)
player->kartstuff[k_growcancel] = -1;
if (player->kartstuff[k_itemtype] == KITEM_SPB
|| player->kartstuff[k_itemtype] == KITEM_SHRINK
|| player->kartstuff[k_growshrinktimer] < 0)
@ -7581,19 +7546,6 @@ static void K_drawKartItem(void)
else
localpatch = kp_nodraw;
}
else if (stplyr->kartstuff[k_growshrinktimer] > 0)
{
if (stplyr->kartstuff[k_growcancel] > 0)
{
itembar = stplyr->kartstuff[k_growcancel];
maxl = 26;
}
if (leveltime & 1)
localpatch = kp_grow[offset];
else
localpatch = kp_nodraw;
}
else if (stplyr->kartstuff[k_sadtimer] > 0)
{
if (leveltime & 2)

View file

@ -132,7 +132,7 @@ boolean P_CanPickupItem(player_t *player, UINT8 weapon)
{
// Item-specific timer going off
if (player->kartstuff[k_stealingtimer] || player->kartstuff[k_stolentimer]
|| player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_rocketsneakertimer]
|| player->kartstuff[k_rocketsneakertimer]
|| player->kartstuff[k_eggmanexplode])
return false;

View file

@ -6805,17 +6805,6 @@ void P_MobjThinker(mobj_t *mobj)
else
mobj->tracer->flags2 |= MF2_DONTDRAW;
}
else if (mobj->target->player->kartstuff[k_growshrinktimer] > 0)
{
P_SetMobjState(mobj, S_PLAYERARROW_BOX);
mobj->tracer->sprite = SPR_ITEM;
mobj->tracer->frame = FF_FULLBRIGHT|KITEM_GROW;
if (leveltime & 1)
mobj->tracer->flags2 &= ~MF2_DONTDRAW;
else
mobj->tracer->flags2 |= MF2_DONTDRAW;
}
else if (mobj->target->player->kartstuff[k_itemtype] && mobj->target->player->kartstuff[k_itemamount] > 0)
{
P_SetMobjState(mobj, S_PLAYERARROW_BOX);

View file

@ -1218,10 +1218,10 @@ void P_RestoreMusic(player_t *player)
#define setbests(p) \
if (players[p].playerstate == PST_LIVE) \
{ \
if (players[p].kartstuff[k_growshrinktimer] > bestlocaltimer) \
{ wantedmus = 2; bestlocaltimer = players[p].kartstuff[k_growshrinktimer]; } \
else if (players[p].kartstuff[k_invincibilitytimer] > bestlocaltimer) \
if (players[p].kartstuff[k_invincibilitytimer] > bestlocaltimer) \
{ wantedmus = 1; bestlocaltimer = players[p].kartstuff[k_invincibilitytimer]; } \
else if (players[p].kartstuff[k_growshrinktimer] > bestlocaltimer) \
{ wantedmus = 2; bestlocaltimer = players[p].kartstuff[k_growshrinktimer]; } \
}
setbests(displayplayers[0]);
setbests(displayplayers[1]);
@ -1235,10 +1235,10 @@ void P_RestoreMusic(player_t *player)
{
if (player->playerstate == PST_LIVE)
{
if (player->kartstuff[k_growshrinktimer] > 1)
wantedmus = 2;
else if (player->kartstuff[k_invincibilitytimer] > 1)
if (player->kartstuff[k_invincibilitytimer] > 1)
wantedmus = 1;
else if (player->kartstuff[k_growshrinktimer] > 1)
wantedmus = 2;
}
}