mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-01-10 16:52:16 +00:00
* Re-enable kickstartaccel in battle.
* Add a little "ding" sound and HUD dorito bounce when your kickstartaccel reaches max, so you can let go of accelerate/know when you need to tap to stop. * Make the name on top of the boss healthbar only show up once the titlecard is over. * Properly reset boss healthbar fill between maploads.
This commit is contained in:
parent
17e5f71b5d
commit
61577e5026
4 changed files with 50 additions and 13 deletions
|
|
@ -261,7 +261,7 @@ typedef enum
|
|||
//}
|
||||
|
||||
// for kickstartaccel
|
||||
#define ACCEL_KICKSTART 35
|
||||
#define ACCEL_KICKSTART (TICRATE)
|
||||
|
||||
#define ITEMSCALE_NORMAL 0
|
||||
#define ITEMSCALE_GROW 1
|
||||
|
|
|
|||
38
src/k_hud.c
38
src/k_hud.c
|
|
@ -1917,8 +1917,23 @@ static void K_drawBossHealthBar(void)
|
|||
starty += mag;
|
||||
}
|
||||
|
||||
if (bossinfo.enemyname)
|
||||
V_DrawRightAlignedThinString(startx, starty-10, V_HUDTRANS|V_SLIDEIN|V_SNAPTOBOTTOM|V_SNAPTORIGHT|V_6WIDTHSPACE, bossinfo.enemyname);
|
||||
if ((lt_ticker >= lt_endtime) && bossinfo.enemyname)
|
||||
{
|
||||
if (lt_exitticker == 0)
|
||||
{
|
||||
rolrand = 5;
|
||||
}
|
||||
else if (lt_exitticker == 1)
|
||||
{
|
||||
rolrand = 7;
|
||||
}
|
||||
else
|
||||
{
|
||||
rolrand = 10;
|
||||
}
|
||||
V_DrawRightAlignedThinString(startx, starty-rolrand, V_HUDTRANS|V_SLIDEIN|V_SNAPTOBOTTOM|V_SNAPTORIGHT|V_6WIDTHSPACE, bossinfo.enemyname);
|
||||
rolrand = 0;
|
||||
}
|
||||
|
||||
// Used for colour and randomisation.
|
||||
if (bossinfo.healthbar <= (bossinfo.visualdiv/FRACUNIT))
|
||||
|
|
@ -2361,7 +2376,6 @@ static void K_drawKartLapsAndRings(void)
|
|||
static void K_drawKartAccessibilityIcons(INT32 fx)
|
||||
{
|
||||
INT32 fy = LAPS_Y-25;
|
||||
UINT8 col = 0, i, wid, fil;
|
||||
INT32 splitflags = V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_SPLITSCREEN;
|
||||
//INT32 step = 1; -- if there's ever more than one accessibility icon
|
||||
|
||||
|
|
@ -2383,19 +2397,21 @@ static void K_drawKartAccessibilityIcons(INT32 fx)
|
|||
}
|
||||
}
|
||||
|
||||
if ((stplyr->pflags & PF_KICKSTARTACCEL) && gametype != GT_BATTLE) // just KICKSTARTACCEL right now, maybe more later
|
||||
if (stplyr->pflags & PF_KICKSTARTACCEL) // just KICKSTARTACCEL right now, maybe more later
|
||||
{
|
||||
fil = 7-(stplyr->kickstartaccel*7)/ACCEL_KICKSTART;
|
||||
i = 7;
|
||||
SINT8 col = 0, wid, fil, ofs;
|
||||
UINT8 i = 7;
|
||||
ofs = (stplyr->kickstartaccel == ACCEL_KICKSTART) ? 1 : 0;
|
||||
fil = i-(stplyr->kickstartaccel*i)/ACCEL_KICKSTART;
|
||||
|
||||
V_DrawFill(fx+4, fy-1, 2, 1, 31|V_SLIDEIN|splitflags);
|
||||
V_DrawFill(fx, (fy-1)+8, 10, 1, 31|V_SLIDEIN|splitflags);
|
||||
V_DrawFill(fx+4, fy+ofs-1, 2, 1, 31|V_SLIDEIN|splitflags);
|
||||
V_DrawFill(fx, (fy+ofs-1)+8, 10, 1, 31|V_SLIDEIN|splitflags);
|
||||
|
||||
while (i--)
|
||||
{
|
||||
wid = (i/2)+1;
|
||||
V_DrawFill(fx+4-wid, fy+i, 2+(wid*2), 1, 31|V_SLIDEIN|splitflags);
|
||||
if (fil)
|
||||
V_DrawFill(fx+4-wid, fy+ofs+i, 2+(wid*2), 1, 31|V_SLIDEIN|splitflags);
|
||||
if (fil > 0)
|
||||
{
|
||||
if (i < fil)
|
||||
col = 23;
|
||||
|
|
@ -2408,7 +2424,7 @@ static void K_drawKartAccessibilityIcons(INT32 fx)
|
|||
col = 0;
|
||||
else
|
||||
col = 3;
|
||||
V_DrawFill(fx+5-wid, fy+i, (wid*2), 1, col|V_SLIDEIN|splitflags);
|
||||
V_DrawFill(fx+5-wid, fy+ofs+i, (wid*2), 1, col|V_SLIDEIN|splitflags);
|
||||
}
|
||||
|
||||
//fx += step*12;
|
||||
|
|
|
|||
|
|
@ -4299,6 +4299,7 @@ boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate)
|
|||
{
|
||||
// Reset some pesky boss state that can't be handled elsewhere.
|
||||
bossinfo.barlen = BOSSHEALTHBARLEN;
|
||||
bossinfo.visualbar = 0;
|
||||
if (bossinfo.enemyname)
|
||||
Z_Free(bossinfo.enemyname);
|
||||
if (bossinfo.subtitle)
|
||||
|
|
|
|||
22
src/p_user.c
22
src/p_user.c
|
|
@ -4325,17 +4325,37 @@ void P_PlayerThink(player_t *player)
|
|||
}
|
||||
|
||||
// Accessibility - kickstart your acceleration
|
||||
if (gametype == GT_BATTLE || !(player->pflags & PF_KICKSTARTACCEL))
|
||||
if (!(player->pflags & PF_KICKSTARTACCEL))
|
||||
{
|
||||
player->kickstartaccel = 0;
|
||||
}
|
||||
else if (cmd->buttons & BT_ACCELERATE)
|
||||
{
|
||||
if (!player->exiting && !(player->pflags & PF_ACCELDOWN))
|
||||
{
|
||||
player->kickstartaccel = 0;
|
||||
}
|
||||
else if (player->kickstartaccel < ACCEL_KICKSTART)
|
||||
{
|
||||
player->kickstartaccel++;
|
||||
if ((player->kickstartaccel == ACCEL_KICKSTART) && P_IsLocalPlayer(player))
|
||||
{
|
||||
S_StartSound(NULL, sfx_ding);
|
||||
}
|
||||
}
|
||||
else // for HUD
|
||||
{
|
||||
player->kickstartaccel = ACCEL_KICKSTART+1;
|
||||
}
|
||||
}
|
||||
else if (player->kickstartaccel < ACCEL_KICKSTART)
|
||||
{
|
||||
player->kickstartaccel = 0;
|
||||
}
|
||||
else // for HUD
|
||||
{
|
||||
player->kickstartaccel = ACCEL_KICKSTART+1;
|
||||
}
|
||||
|
||||
#ifdef PARANOIA
|
||||
if (player->playerstate == PST_REBORN)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue