Flame Shield updatin's

This commit is contained in:
TehRealSalt 2019-05-20 15:39:33 -04:00
parent 1e7b79144d
commit 52bd194c69

View file

@ -2274,7 +2274,7 @@ static void K_GetKartBoostPower(player_t *player)
if (player->kartstuff[k_flamedash]) // Flame Shield dash if (player->kartstuff[k_flamedash]) // Flame Shield dash
{ {
fixed_t dashval = ((player->kartstuff[k_flamedash]<<FRACBITS) / TICRATE) / 20; // 1 second = +5% top speed fixed_t dashval = ((player->kartstuff[k_flamedash]<<FRACBITS) / TICRATE) / 20; // 1 second = +5% top speed
ADDBOOST(FRACUNIT/3 + dashval, FRACUNIT); // + infinite top speed, + 100% acceleration ADDBOOST(FRACUNIT/2 + dashval, 2*FRACUNIT); // + infinite top speed, + 100% acceleration
} }
if (player->kartstuff[k_startboost]) // Startup Boost if (player->kartstuff[k_startboost]) // Startup Boost
@ -5544,7 +5544,7 @@ INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue)
if (player->kartstuff[k_flamedash]) // Reduce turning if (player->kartstuff[k_flamedash]) // Reduce turning
{ {
fixed_t dashval = ((player->kartstuff[k_flamedash]<<FRACBITS) / TICRATE) / 20; // 1 second = -5% handling fixed_t dashval = ((player->kartstuff[k_flamedash]<<FRACBITS) / TICRATE) / 40; // 1 second = -2.5% handling
if (dashval > FRACUNIT) if (dashval > FRACUNIT)
return 0; // NO MORE TURNING! return 0; // NO MORE TURNING!
turnvalue = FixedMul(turnvalue, FRACUNIT-dashval); turnvalue = FixedMul(turnvalue, FRACUNIT-dashval);
@ -6414,6 +6414,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
S_StartSound(player->mo, sfx_s3k3f); S_StartSound(player->mo, sfx_s3k3f);
player->kartstuff[k_curshield] = KSHIELD_BUBBLE; player->kartstuff[k_curshield] = KSHIELD_BUBBLE;
} }
break;
case KITEM_FLAMESHIELD: case KITEM_FLAMESHIELD:
if (player->kartstuff[k_curshield] != KSHIELD_FLAME) if (player->kartstuff[k_curshield] != KSHIELD_FLAME)
{ {
@ -6433,11 +6434,18 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
if (player->kartstuff[k_flamedash] == 0) if (player->kartstuff[k_flamedash] == 0)
K_PlayBoostTaunt(player->mo); K_PlayBoostTaunt(player->mo);
player->kartstuff[k_flamedash]++; player->kartstuff[k_flamedash]++;
if (player->kartstuff[k_flamedash] > 10*TICRATE)
{
K_FlameShieldPop(player->mo);
player->kartstuff[k_flamedash] = 0;
player->kartstuff[k_flameready] = 0;
player->kartstuff[k_itemamount]--;
}
} }
} }
else else
{ {
if (player->kartstuff[k_flamedash] > TICRATE) if (player->kartstuff[k_flamedash] > (TICRATE*2))
{ {
K_FlameShieldPop(player->mo); K_FlameShieldPop(player->mo);
player->kartstuff[k_flamedash] = 0; player->kartstuff[k_flamedash] = 0;
@ -7861,11 +7869,15 @@ static void K_drawKartItem(void)
localbg = kp_itembg[offset+1]; localbg = kp_itembg[offset+1];
break; break;
case KITEM_BUBBLESHIELD: case KITEM_BUBBLESHIELD:
localpatch = kp_bubbleshield[offset]; localpatch = kp_bubbleshield[offset];
localbg = kp_itembg[offset+1]; localbg = kp_itembg[offset+1];
break; break;
case KITEM_FLAMESHIELD: case KITEM_FLAMESHIELD:
localpatch = kp_flameshield[offset]; if (stplyr->kartstuff[k_flamedash] > (TICRATE*2) && (leveltime & 1))
localpatch = kp_nodraw;
else
localpatch = kp_flameshield[offset];
localbg = kp_itembg[offset+1]; localbg = kp_itembg[offset+1];
break; break;
case KITEM_HYUDORO: case KITEM_HYUDORO: