mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-12-31 04:02:37 +00:00
No lives in Relaxed
This commit is contained in:
parent
23b4b83c7c
commit
78fb3c0cdd
5 changed files with 71 additions and 38 deletions
|
|
@ -3257,7 +3257,7 @@ void G_BeginLevelExit(void)
|
|||
g_exit.losing = true;
|
||||
g_exit.retry = false;
|
||||
|
||||
if (!G_GametypeAllowsRetrying() || skipstats != 0)
|
||||
if (!G_GametypeAllowsRetrying() || skipstats != 0 || (grandprixinfo.gp && grandprixinfo.gamespeed == KARTSPEED_EASY))
|
||||
{
|
||||
g_exit.losing = false; // never force a retry
|
||||
}
|
||||
|
|
@ -3618,7 +3618,7 @@ boolean G_GametypeUsesLives(void)
|
|||
if (modeattacking) // NOT in Record Attack
|
||||
return false;
|
||||
|
||||
if (grandprixinfo.gp == true) // In Grand Prix
|
||||
if (grandprixinfo.gp == true && grandprixinfo.gamespeed != KARTSPEED_EASY) // In Grand Prix
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
|
@ -4738,7 +4738,7 @@ static void G_DoCompleted(void)
|
|||
}
|
||||
}
|
||||
|
||||
if (grandprixinfo.gp == true && grandprixinfo.wonround == true && player->exiting && !retrying)
|
||||
if (grandprixinfo.gp == true && grandprixinfo.wonround == true && player->exiting && (!retrying || grandprixinfo.gamespeed == KARTSPEED_EASY))
|
||||
{
|
||||
if (player->bot == true)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -389,8 +389,9 @@ void K_UpdateGrandPrixBots(void)
|
|||
|
||||
if (players[i].botvars.diffincrease)
|
||||
{
|
||||
// CONS_Printf("in %d inc %d", players[i].botvars.difficulty, players[i].botvars.diffincrease);
|
||||
if (players[i].botvars.diffincrease < 0)
|
||||
players[i].botvars.difficulty = std::max(1, players[i].botvars.difficulty - players[i].botvars.diffincrease);
|
||||
players[i].botvars.difficulty = std::max(1, players[i].botvars.difficulty + players[i].botvars.diffincrease);
|
||||
else
|
||||
players[i].botvars.difficulty += players[i].botvars.diffincrease;
|
||||
|
||||
|
|
@ -400,6 +401,7 @@ void K_UpdateGrandPrixBots(void)
|
|||
}
|
||||
|
||||
players[i].botvars.diffincrease = 0;
|
||||
// CONS_Printf("out %d\n", players[i].botvars.difficulty);
|
||||
}
|
||||
|
||||
if (players[i].botvars.rival)
|
||||
|
|
@ -630,13 +632,37 @@ void K_IncreaseBotDifficulty(player_t *bot)
|
|||
rankNudge = 0;
|
||||
break;
|
||||
case GRADE_A:
|
||||
if (grandprixinfo.gp && grandprixinfo.gamespeed == KARTSPEED_EASY)
|
||||
rankNudge = 0;
|
||||
else
|
||||
rankNudge = 1;
|
||||
rankNudge = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
// RELAXED MODE:
|
||||
// Continues don't drop bot difficulty, because we always advance.
|
||||
// Bots will still level up from standard advancement; we need a
|
||||
// much steeper rank nudge to keep difficulty at the right level.
|
||||
if (grandprixinfo.gamespeed == KARTSPEED_EASY)
|
||||
{
|
||||
switch(averageRank)
|
||||
{
|
||||
case GRADE_E:
|
||||
rankNudge = -4;
|
||||
break;
|
||||
case GRADE_D:
|
||||
rankNudge = -3;
|
||||
break;
|
||||
case GRADE_C:
|
||||
rankNudge = -2;
|
||||
break;
|
||||
case GRADE_B:
|
||||
rankNudge = -1;
|
||||
break;
|
||||
case GRADE_A:
|
||||
rankNudge = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
increase += rankNudge;
|
||||
|
||||
if (increase <= 0)
|
||||
|
|
|
|||
|
|
@ -646,6 +646,9 @@ fixed_t K_CalculateGPPercent(gpRank_t *rankData)
|
|||
rankData->scoreRings +
|
||||
rankData->scoreContinues;
|
||||
|
||||
if (rankData->scoreTotal < 0)
|
||||
rankData->scoreTotal = 0;
|
||||
|
||||
const fixed_t percent = FixedDiv(rankData->scoreTotal, total);
|
||||
|
||||
return percent;
|
||||
|
|
|
|||
|
|
@ -618,7 +618,8 @@ boolean level_tally_t::IncrementLine(void)
|
|||
|
||||
value = &displayStat[i];
|
||||
lives_check = (
|
||||
stats[i] == TALLY_STAT_TOTALRINGS // Rings also shows the Lives.
|
||||
grandprixinfo.gamespeed != KARTSPEED_EASY
|
||||
&& stats[i] == TALLY_STAT_TOTALRINGS // Rings also shows the Lives.
|
||||
&& livesAdded < owner->xtralife // Don't check if we've maxxed out!
|
||||
);
|
||||
|
||||
|
|
@ -1294,41 +1295,44 @@ void level_tally_t::Draw(void)
|
|||
case TALLY_STAT_TOTALRINGS:
|
||||
{
|
||||
drawer_text
|
||||
.x(184.0 * frac)
|
||||
.x((G_GametypeUsesLives() ? 184.0 : 200.0) * frac)
|
||||
.align(srb2::Draw::Align::kCenter)
|
||||
.text(va("%d", displayStat[i]));
|
||||
|
||||
srb2::Draw lives_drawer = drawer_text
|
||||
.xy(221.0 * frac, -1.0 * frac);
|
||||
|
||||
const skincolornum_t color = static_cast<skincolornum_t>(owner->skincolor);
|
||||
lives_drawer
|
||||
.x(r_splitscreen ? -7.0 : -2.0)
|
||||
.colormap(owner->skin, color)
|
||||
.patch(faceprefix[owner->skin][r_splitscreen ? FACE_MINIMAP : FACE_RANK]);
|
||||
|
||||
UINT8 lives_num = std::min(owner->lives + livesAdded, 10);
|
||||
if (xtraBlink > 0 && (xtraBlink & 1) == 0 && livesAdded > 0)
|
||||
if (G_GametypeUsesLives())
|
||||
{
|
||||
lives_num = 0;
|
||||
}
|
||||
srb2::Draw lives_drawer = drawer_text
|
||||
.xy(221.0 * frac, -1.0 * frac);
|
||||
|
||||
if (lives_num > 0)
|
||||
{
|
||||
if (r_splitscreen)
|
||||
const skincolornum_t color = static_cast<skincolornum_t>(owner->skincolor);
|
||||
lives_drawer
|
||||
.x(r_splitscreen ? -7.0 : -2.0)
|
||||
.colormap(owner->skin, color)
|
||||
.patch(faceprefix[owner->skin][r_splitscreen ? FACE_MINIMAP : FACE_RANK]);
|
||||
|
||||
UINT8 lives_num = std::min(owner->lives + livesAdded, 10);
|
||||
if (xtraBlink > 0 && (xtraBlink & 1) == 0 && livesAdded > 0)
|
||||
{
|
||||
lives_drawer = lives_drawer
|
||||
.xy(6.0, 2.0)
|
||||
.align(srb2::Draw::Align::kLeft);
|
||||
}
|
||||
else
|
||||
{
|
||||
lives_drawer = lives_drawer
|
||||
.xy(17.0, 1.0)
|
||||
.font(srb2::Draw::Font::kThinTimer);
|
||||
lives_num = 0;
|
||||
}
|
||||
|
||||
lives_drawer.text("{}", lives_num);
|
||||
if (lives_num > 0)
|
||||
{
|
||||
if (r_splitscreen)
|
||||
{
|
||||
lives_drawer = lives_drawer
|
||||
.xy(6.0, 2.0)
|
||||
.align(srb2::Draw::Align::kLeft);
|
||||
}
|
||||
else
|
||||
{
|
||||
lives_drawer = lives_drawer
|
||||
.xy(17.0, 1.0)
|
||||
.font(srb2::Draw::Font::kThinTimer);
|
||||
}
|
||||
|
||||
lives_drawer.text("{}", lives_num);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -188,10 +188,10 @@ void Dummygpdifficulty_OnChange(void)
|
|||
switch (cv_dummygpdifficulty.value)
|
||||
{
|
||||
case KARTSPEED_EASY:
|
||||
tooltip = "Low-stakes racing at \x83Gear 1""\x80"". Take a drive and \x83""enjoy the sights!";
|
||||
tooltip = "Low-stakes racing at \x83Gear 1""\x80"". \x83No placement requirements\x80.";
|
||||
break;
|
||||
case KARTSPEED_NORMAL:
|
||||
tooltip = "Aim for the prize at\x82 Gear 2\x80. Can you \x82surpass your limits?";
|
||||
tooltip = "Aim for the prize at\x82 Gear 2\x80. Place \x82""4th or better\x80 to advance!";
|
||||
break;
|
||||
case KARTSPEED_HARD:
|
||||
tooltip = "Challenge fierce competition at\x87 Gear 3\x80. For\x87 thrill-seekers!";
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue