mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-26 12:01:47 +00:00
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:
parent
5bacbe6222
commit
ecaf14a76b
6 changed files with 22 additions and 83 deletions
|
|
@ -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_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_jawztargetdelay, // Delay for Jawz target switching, to make it less twitchy
|
||||||
k_spectatewait, // How long have you been waiting as a spectator
|
k_spectatewait, // How long have you been waiting as a spectator
|
||||||
k_growcancel, // Hold the item button down to cancel Grow
|
|
||||||
|
|
||||||
NUMKARTSTUFF
|
NUMKARTSTUFF
|
||||||
} kartstufftype_t;
|
} kartstufftype_t;
|
||||||
|
|
|
||||||
|
|
@ -8471,8 +8471,7 @@ static const char *const KARTSTUFF_LIST[] = {
|
||||||
"ITEMBLINKMODE",
|
"ITEMBLINKMODE",
|
||||||
"GETSPARKS",
|
"GETSPARKS",
|
||||||
"JAWZTARGETDELAY",
|
"JAWZTARGETDELAY",
|
||||||
"SPECTATEWAIT",
|
"SPECTATEWAIT"
|
||||||
"GROWCANCEL"
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
76
src/k_kart.c
76
src/k_kart.c
|
|
@ -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)
|
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)
|
switch (mobj->type)
|
||||||
{
|
{
|
||||||
|
|
@ -1270,7 +1270,7 @@ static fixed_t K_GetMobjWeight(mobj_t *mobj, mobj_t *against)
|
||||||
weight = 0; // Do not bump
|
weight = 0; // Do not bump
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
weight = (mobj->player->kartweight)<<FRACBITS;
|
weight = (mobj->player->kartweight) * mobj->scale;
|
||||||
if (mobj->player->speed > K_GetKartSpeed(mobj->player, false))
|
if (mobj->player->speed > K_GetKartSpeed(mobj->player, false))
|
||||||
weight += (mobj->player->speed - K_GetKartSpeed(mobj->player, false))/8;
|
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)
|
|| against->player->kartstuff[k_growshrinktimer] > 0)
|
||||||
weight = 0;
|
weight = 0;
|
||||||
else
|
else
|
||||||
weight = (against->player->kartweight)<<FRACBITS;
|
weight = (against->player->kartweight) * against->scale;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MT_ORBINAUT:
|
case MT_ORBINAUT:
|
||||||
case MT_ORBINAUT_SHIELD:
|
case MT_ORBINAUT_SHIELD:
|
||||||
if (against->player)
|
if (against->player)
|
||||||
weight = (against->player->kartweight)<<FRACBITS;
|
weight = (against->player->kartweight) * against->scale;
|
||||||
break;
|
break;
|
||||||
case MT_JAWZ:
|
case MT_JAWZ:
|
||||||
case MT_JAWZ_DUD:
|
case MT_JAWZ_DUD:
|
||||||
case MT_JAWZ_SHIELD:
|
case MT_JAWZ_SHIELD:
|
||||||
if (against->player)
|
if (against->player)
|
||||||
weight = (against->player->kartweight+3)<<FRACBITS;
|
weight = (against->player->kartweight+3) * against->scale;
|
||||||
else
|
else
|
||||||
weight = 8<<FRACBITS;
|
weight = 8*mobj->scale;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
@ -2229,14 +2229,6 @@ static void K_GetKartBoostPower(player_t *player)
|
||||||
if (player->kartstuff[k_ringboost]) // Ring Boost
|
if (player->kartstuff[k_ringboost]) // Ring Boost
|
||||||
ADDBOOST(FRACUNIT/5, 4*FRACUNIT); // + 20% top speed, + 400% acceleration
|
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
|
if (player->kartstuff[k_draftpower] > 0) // Drafting
|
||||||
{
|
{
|
||||||
speedboost += (player->kartstuff[k_draftpower]) / 3; // + 0 to 33.3% top speed
|
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_growshrinktimer] = 0;
|
||||||
player->kartstuff[k_growcancel] = -1;
|
|
||||||
|
|
||||||
P_RestoreMusic(player);
|
P_RestoreMusic(player);
|
||||||
}
|
}
|
||||||
|
|
@ -4820,17 +4811,17 @@ static void K_UpdateInvincibilitySounds(player_t *player)
|
||||||
{
|
{
|
||||||
if (cv_kartinvinsfx.value)
|
if (cv_kartinvinsfx.value)
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_growshrinktimer] > 0) // Prioritize Grow
|
if (player->kartstuff[k_invincibilitytimer] > 0) // Prioritize invincibility
|
||||||
sfxnum = sfx_alarmg;
|
|
||||||
else if (player->kartstuff[k_invincibilitytimer] > 0)
|
|
||||||
sfxnum = sfx_alarmi;
|
sfxnum = sfx_alarmi;
|
||||||
|
else if (player->kartstuff[k_growshrinktimer] > 0)
|
||||||
|
sfxnum = sfx_alarmg;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_growshrinktimer] > 0)
|
if (player->kartstuff[k_invincibilitytimer] > 0)
|
||||||
sfxnum = sfx_kgrow;
|
|
||||||
else if (player->kartstuff[k_invincibilitytimer] > 0)
|
|
||||||
sfxnum = sfx_kinvnc;
|
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
|
&& NO_HYUDORO && !(HOLDING_ITEM
|
||||||
|| player->kartstuff[k_itemamount]
|
|| player->kartstuff[k_itemamount]
|
||||||
|| player->kartstuff[k_itemroulette]
|
|| 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_rocketsneakertimer]
|
||||||
|| player->kartstuff[k_eggmanexplode]))
|
|| player->kartstuff[k_eggmanexplode]))
|
||||||
player->kartstuff[k_userings] = 1;
|
player->kartstuff[k_userings] = 1;
|
||||||
|
|
@ -5952,28 +5943,6 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||||
player->kartstuff[k_rocketsneakertimer] = 1;
|
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)
|
else if (player->kartstuff[k_itemamount] <= 0)
|
||||||
{
|
{
|
||||||
player->kartstuff[k_itemamount] = player->kartstuff[k_itemheld] = 0;
|
player->kartstuff[k_itemamount] = player->kartstuff[k_itemheld] = 0;
|
||||||
|
|
@ -6225,8 +6194,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KITEM_GROW:
|
case KITEM_GROW:
|
||||||
if (ATTACK_IS_DOWN && !HOLDING_ITEM && NO_HYUDORO
|
if (ATTACK_IS_DOWN && !HOLDING_ITEM && NO_HYUDORO)
|
||||||
&& player->kartstuff[k_growshrinktimer] <= 0) // Grow holds the item box hostage
|
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_growshrinktimer] < 0) // If you're shrunk, then "grow" will just make you normal again.
|
if (player->kartstuff[k_growshrinktimer] < 0) // If you're shrunk, then "grow" will just make you normal again.
|
||||||
K_RemoveGrowShrink(player);
|
K_RemoveGrowShrink(player);
|
||||||
|
|
@ -6353,9 +6321,6 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||||
else
|
else
|
||||||
player->kartstuff[k_curshield] = 0;
|
player->kartstuff[k_curshield] = 0;
|
||||||
|
|
||||||
if (player->kartstuff[k_growshrinktimer] <= 0)
|
|
||||||
player->kartstuff[k_growcancel] = -1;
|
|
||||||
|
|
||||||
if (player->kartstuff[k_itemtype] == KITEM_SPB
|
if (player->kartstuff[k_itemtype] == KITEM_SPB
|
||||||
|| player->kartstuff[k_itemtype] == KITEM_SHRINK
|
|| player->kartstuff[k_itemtype] == KITEM_SHRINK
|
||||||
|| player->kartstuff[k_growshrinktimer] < 0)
|
|| player->kartstuff[k_growshrinktimer] < 0)
|
||||||
|
|
@ -7581,19 +7546,6 @@ static void K_drawKartItem(void)
|
||||||
else
|
else
|
||||||
localpatch = kp_nodraw;
|
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)
|
else if (stplyr->kartstuff[k_sadtimer] > 0)
|
||||||
{
|
{
|
||||||
if (leveltime & 2)
|
if (leveltime & 2)
|
||||||
|
|
|
||||||
|
|
@ -132,7 +132,7 @@ boolean P_CanPickupItem(player_t *player, UINT8 weapon)
|
||||||
{
|
{
|
||||||
// Item-specific timer going off
|
// Item-specific timer going off
|
||||||
if (player->kartstuff[k_stealingtimer] || player->kartstuff[k_stolentimer]
|
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])
|
|| player->kartstuff[k_eggmanexplode])
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
||||||
11
src/p_mobj.c
11
src/p_mobj.c
|
|
@ -6805,17 +6805,6 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
else
|
else
|
||||||
mobj->tracer->flags2 |= MF2_DONTDRAW;
|
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)
|
else if (mobj->target->player->kartstuff[k_itemtype] && mobj->target->player->kartstuff[k_itemamount] > 0)
|
||||||
{
|
{
|
||||||
P_SetMobjState(mobj, S_PLAYERARROW_BOX);
|
P_SetMobjState(mobj, S_PLAYERARROW_BOX);
|
||||||
|
|
|
||||||
12
src/p_user.c
12
src/p_user.c
|
|
@ -1218,10 +1218,10 @@ void P_RestoreMusic(player_t *player)
|
||||||
#define setbests(p) \
|
#define setbests(p) \
|
||||||
if (players[p].playerstate == PST_LIVE) \
|
if (players[p].playerstate == PST_LIVE) \
|
||||||
{ \
|
{ \
|
||||||
if (players[p].kartstuff[k_growshrinktimer] > bestlocaltimer) \
|
if (players[p].kartstuff[k_invincibilitytimer] > bestlocaltimer) \
|
||||||
{ wantedmus = 2; bestlocaltimer = players[p].kartstuff[k_growshrinktimer]; } \
|
|
||||||
else if (players[p].kartstuff[k_invincibilitytimer] > bestlocaltimer) \
|
|
||||||
{ wantedmus = 1; bestlocaltimer = players[p].kartstuff[k_invincibilitytimer]; } \
|
{ 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[0]);
|
||||||
setbests(displayplayers[1]);
|
setbests(displayplayers[1]);
|
||||||
|
|
@ -1235,10 +1235,10 @@ void P_RestoreMusic(player_t *player)
|
||||||
{
|
{
|
||||||
if (player->playerstate == PST_LIVE)
|
if (player->playerstate == PST_LIVE)
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_growshrinktimer] > 1)
|
if (player->kartstuff[k_invincibilitytimer] > 1)
|
||||||
wantedmus = 2;
|
|
||||||
else if (player->kartstuff[k_invincibilitytimer] > 1)
|
|
||||||
wantedmus = 1;
|
wantedmus = 1;
|
||||||
|
else if (player->kartstuff[k_growshrinktimer] > 1)
|
||||||
|
wantedmus = 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue