mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-18 15:32:10 +00:00
Shrink buffed HEAVILY
It now does its job properly: repairing races when there is one straggler far in the back. - Wipeout instead of spinout, to prevent cheap deaths - Lose all of your items when you get shrunk. - You cannot pick up any items while shrunk. - x2 duration. - Appears in the very back, with 10% chance.
This commit is contained in:
parent
35eb978c69
commit
8bb6cc6c19
3 changed files with 30 additions and 9 deletions
19
src/k_kart.c
19
src/k_kart.c
|
@ -368,7 +368,7 @@ static INT32 K_KartItemOddsRace[NUMKARTRESULTS][9] =
|
|||
//P-Odds 0 1 2 3 4 5 6 7 8
|
||||
/*Sneaker*/ {20, 0, 0, 3, 7, 6, 0, 0, 0 }, // Sneaker
|
||||
/*Rocket Sneaker*/ { 0, 0, 0, 0, 0, 3, 5, 4, 0 }, // Rocket Sneaker
|
||||
/*Invincibility*/ { 0, 0, 0, 0, 0, 1, 6, 9,18 }, // Invincibility
|
||||
/*Invincibility*/ { 0, 0, 0, 0, 0, 1, 6, 9,16 }, // Invincibility
|
||||
/*Banana*/ { 0, 9, 4, 2, 1, 0, 0, 0, 0 }, // Banana
|
||||
/*Eggman Monitor*/ { 0, 4, 2, 1, 0, 0, 0, 0, 0 }, // Eggman Monitor
|
||||
/*Orbinaut*/ { 0, 6, 4, 3, 2, 0, 0, 0, 0 }, // Orbinaut
|
||||
|
@ -377,7 +377,7 @@ static INT32 K_KartItemOddsRace[NUMKARTRESULTS][9] =
|
|||
/*Ballhog*/ { 0, 0, 1, 2, 1, 0, 0, 0, 0 }, // Ballhog
|
||||
/*Self-Propelled Bomb*/ { 0, 0, 1, 2, 4, 3, 1, 0, 0 }, // Self-Propelled Bomb
|
||||
/*Grow*/ { 0, 0, 0, 0, 0, 0, 1, 1, 2 }, // Grow
|
||||
/*Shrink*/ { 0, 0, 0, 0, 0, 0, 1, 2, 0 }, // Shrink
|
||||
/*Shrink*/ { 0, 0, 0, 0, 0, 0, 1, 2, 2 }, // Shrink
|
||||
/*Lightning Shield*/ { 0, 1, 2, 0, 0, 0, 0, 0, 0 }, // Lightning Shield
|
||||
/*Hyudoro*/ { 0, 0, 2, 2, 1, 0, 0, 0, 0 }, // Hyudoro
|
||||
/*Pogo Spring*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Pogo Spring
|
||||
|
@ -2850,7 +2850,7 @@ static void K_KartUpdatePosition(player_t *player)
|
|||
//
|
||||
// K_StripItems
|
||||
//
|
||||
static void K_StripItems(player_t *player)
|
||||
void K_StripItems(player_t *player)
|
||||
{
|
||||
player->kartstuff[k_itemtype] = 0;
|
||||
player->kartstuff[k_itemamount] = 0;
|
||||
|
@ -2858,14 +2858,19 @@ static void K_StripItems(player_t *player)
|
|||
|
||||
player->kartstuff[k_itemroulette] = 0;
|
||||
player->kartstuff[k_roulettetype] = 0;
|
||||
|
||||
player->kartstuff[k_rocketsneakertimer] = 0;
|
||||
player->kartstuff[k_invincibilitytimer] = 0;
|
||||
player->kartstuff[k_growshrinktimer] = 0;
|
||||
|
||||
player->kartstuff[k_eggmanheld] = 0;
|
||||
|
||||
player->kartstuff[k_hyudorotimer] = 0;
|
||||
player->kartstuff[k_stealingtimer] = 0;
|
||||
player->kartstuff[k_stolentimer] = 0;
|
||||
player->kartstuff[k_rocketsneakertimer] = 0;
|
||||
player->kartstuff[k_growshrinktimer] = 0;
|
||||
|
||||
player->kartstuff[k_attractiontimer] = 0;
|
||||
player->kartstuff[k_invincibilitytimer] = 0;
|
||||
player->kartstuff[k_eggmanheld] = 0;
|
||||
|
||||
player->kartstuff[k_sadtimer] = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@ void K_DoSneaker(player_t *player, boolean doPFlag);
|
|||
void K_DoPogoSpring(mobj_t *mo, fixed_t vertispeed);
|
||||
boolean K_CheckPlayersRespawnColliding(INT32 playernum, fixed_t x, fixed_t y);
|
||||
INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue);
|
||||
void K_StripItems(player_t *player);
|
||||
void K_MomentumToFacing(player_t *player);
|
||||
fixed_t K_GetKartSpeed(player_t *player, boolean doboostpower);
|
||||
fixed_t K_GetKartAccel(player_t *player);
|
||||
|
|
|
@ -161,7 +161,7 @@ boolean P_CanPickupItem(player_t *player, boolean weapon)
|
|||
if (weapon)
|
||||
{
|
||||
if (player->kartstuff[k_stealingtimer] || player->kartstuff[k_stolentimer]
|
||||
|| player->kartstuff[k_growshrinktimer] > 1 || player->kartstuff[k_rocketsneakertimer]) // Item-specific timer going off
|
||||
|| player->kartstuff[k_growshrinktimer] != 0 || player->kartstuff[k_rocketsneakertimer]) // Item-specific timer going off
|
||||
return false;
|
||||
|
||||
if (player->kartstuff[k_itemroulette]
|
||||
|
@ -3119,7 +3119,22 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
|||
// Start shrinking!
|
||||
player->mo->scalespeed = FRACUNIT/TICRATE;
|
||||
player->mo->destscale = 6*(mapheaderinfo[gamemap-1]->mobj_scale)/8;
|
||||
player->kartstuff[k_growshrinktimer] -= (100+20*(16-(player->kartstuff[k_position])));
|
||||
|
||||
// Wipeout
|
||||
player->kartstuff[k_spinouttype] = 1;
|
||||
K_SpinPlayer(player, source);
|
||||
damage = player->mo->health - 1;
|
||||
P_RingDamage(player, inflictor, source, damage);
|
||||
P_PlayerRingBurst(player, 5);
|
||||
player->mo->momx = player->mo->momy = 0;
|
||||
if (P_IsLocalPlayer(player))
|
||||
{
|
||||
quake.intensity = 32*FRACUNIT;
|
||||
quake.time = 5;
|
||||
}
|
||||
|
||||
K_StripItems(player);
|
||||
player->kartstuff[k_growshrinktimer] -= (200+(40*(16-player->kartstuff[k_position])));
|
||||
}
|
||||
// Grow? Let's take that away.
|
||||
if (player->kartstuff[k_growshrinktimer] > 0)
|
||||
|
|
Loading…
Reference in a new issue