mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-29 20:50:38 +00:00
Last batch of tweaks
- Rocket sneaker meter depletes more slowly when idle, but depletes much more when using it. This balances out to give it a couple more boosts when you use it well, but allows you to waste it more quickly when you don't want it anymore. Also demonstrates better to new players to not spam it like a gold shroom! - Vibrating frames on sneakers when they aren't being used. - Shoe weight is less strong.
This commit is contained in:
parent
0d56f68abc
commit
8379bd3d31
4 changed files with 14 additions and 12 deletions
|
@ -6314,6 +6314,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
// Rocket sneaker
|
||||
"S_ROCKETSNEAKER_L",
|
||||
"S_ROCKETSNEAKER_R",
|
||||
"S_ROCKETSNEAKER_LVIBRATE",
|
||||
"S_ROCKETSNEAKER_RVIBRATE",
|
||||
|
||||
//{ Eggman Monitor
|
||||
"S_FAKEITEM1",
|
||||
|
|
|
@ -2625,6 +2625,8 @@ state_t states[NUMSTATES] =
|
|||
|
||||
{SPR_RSHE, 0, -1, {NULL}, 0, 0, S_NULL}, // S_ROCKETSNEAKER_L
|
||||
{SPR_RSHE, 1, -1, {NULL}, 0, 0, S_NULL}, // S_ROCKETSNEAKER_R
|
||||
{SPR_RSHE, 2, -1, {NULL}, 0, 0, S_NULL}, // S_ROCKETSNEAKER_LVIBRATE
|
||||
{SPR_RSHE, 3, -1, {NULL}, 0, 0, S_NULL}, // S_ROCKETSNEAKER_RVIBRATE
|
||||
|
||||
{SPR_FITM, FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_FAKEITEM2}, // S_FAKEITEM1
|
||||
{SPR_FITM, 1|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_FAKEITEM3}, // S_FAKEITEM2
|
||||
|
|
|
@ -3159,6 +3159,8 @@ typedef enum state
|
|||
// Rocket sneaker
|
||||
S_ROCKETSNEAKER_L,
|
||||
S_ROCKETSNEAKER_R,
|
||||
S_ROCKETSNEAKER_LVIBRATE,
|
||||
S_ROCKETSNEAKER_RVIBRATE,
|
||||
|
||||
//{ Eggman Monitor
|
||||
S_FAKEITEM1,
|
||||
|
|
20
src/k_kart.c
20
src/k_kart.c
|
@ -997,14 +997,9 @@ static fixed_t K_GetMobjWeight(mobj_t *mobj, mobj_t *against)
|
|||
weight = (against->player->kartweight)<<FRACBITS;
|
||||
}
|
||||
break;
|
||||
case MT_ROCKETSNEAKER:
|
||||
if (against->player)
|
||||
weight = (against->player->kartweight*2)<<FRACBITS;
|
||||
else
|
||||
weight = 10<<FRACBITS;
|
||||
break;
|
||||
case MT_ORBINAUT:
|
||||
case MT_ORBINAUT_SHIELD:
|
||||
case MT_ROCKETSNEAKER:
|
||||
if (against->player)
|
||||
weight = (against->player->kartweight)<<FRACBITS;
|
||||
break;
|
||||
|
@ -2993,9 +2988,9 @@ void K_DoSneaker(player_t *player, INT32 type)
|
|||
if (!player->kartstuff[k_floorboost] || player->kartstuff[k_floorboost] == 3)
|
||||
{
|
||||
S_StartSound(player->mo, sfx_cdfm01);
|
||||
K_SpawnDashDustRelease(player);
|
||||
if (intendedboost > player->kartstuff[k_speedboost])
|
||||
player->kartstuff[k_destboostcam] = FixedMul(FRACUNIT, FixedDiv((intendedboost - player->kartstuff[k_speedboost]), intendedboost));
|
||||
K_SpawnDashDustRelease(player);
|
||||
}
|
||||
|
||||
if (!player->kartstuff[k_sneakertimer])
|
||||
|
@ -3599,6 +3594,7 @@ static void K_MoveHeldObjects(player_t *player)
|
|||
while (cur && !P_MobjWasRemoved(cur))
|
||||
{
|
||||
const fixed_t radius = FixedHypot(player->mo->radius, player->mo->radius) + FixedHypot(cur->radius, cur->radius);
|
||||
boolean vibrate = ((leveltime & 1) && !cur->tracer);
|
||||
angle_t angoffset;
|
||||
fixed_t targx, targy, targz;
|
||||
|
||||
|
@ -3610,9 +3606,9 @@ static void K_MoveHeldObjects(player_t *player)
|
|||
cur->flags2 &= ~MF2_DONTDRAW;
|
||||
|
||||
if (num & 1)
|
||||
P_SetMobjStateNF(cur, S_ROCKETSNEAKER_L);
|
||||
P_SetMobjStateNF(cur, (vibrate ? S_ROCKETSNEAKER_LVIBRATE : S_ROCKETSNEAKER_L));
|
||||
else
|
||||
P_SetMobjStateNF(cur, S_ROCKETSNEAKER_R);
|
||||
P_SetMobjStateNF(cur, (vibrate ? S_ROCKETSNEAKER_RVIBRATE : S_ROCKETSNEAKER_R));
|
||||
|
||||
if (!player->kartstuff[k_rocketsneakertimer] || cur->extravalue2 || !cur->health)
|
||||
{
|
||||
|
@ -4690,7 +4686,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
{
|
||||
K_DoSneaker(player, 2);
|
||||
K_PlayBoostTaunt(player->mo);
|
||||
player->kartstuff[k_rocketsneakertimer] -= 5;
|
||||
player->kartstuff[k_rocketsneakertimer] -= 2*TICRATE;
|
||||
if (player->kartstuff[k_rocketsneakertimer] < 1)
|
||||
player->kartstuff[k_rocketsneakertimer] = 1;
|
||||
}
|
||||
|
@ -4724,7 +4720,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
|
||||
//K_DoSneaker(player, 2);
|
||||
|
||||
player->kartstuff[k_rocketsneakertimer] = itemtime;
|
||||
player->kartstuff[k_rocketsneakertimer] = itemtime*3;
|
||||
player->kartstuff[k_itemamount]--;
|
||||
K_UpdateHnextList(player, true);
|
||||
|
||||
|
@ -6157,7 +6153,7 @@ static void K_drawKartItem(void)
|
|||
if (itembar && hudtrans)
|
||||
{
|
||||
const INT32 barlength = (splitscreen > 1 ? 12 : 24);
|
||||
const INT32 max = itemtime; // timer's normal highest value
|
||||
const INT32 max = itemtime*3; // timer's normal highest value
|
||||
const INT32 length = min(barlength, (itembar * barlength) / max);
|
||||
const INT32 height = (offset ? 1 : 2);
|
||||
const INT32 x = (offset ? 17 : 11), y = (offset ? 27 : 35);
|
||||
|
|
Loading…
Reference in a new issue