mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Calculate a bot difficulty to reach
13 is very unlikely for Normal, likely impossible for Easy. (If we want a bonus game speeds, it should be explicitly defined)
This commit is contained in:
parent
c61e017c38
commit
f7851623ff
3 changed files with 21 additions and 4 deletions
|
|
@ -5086,7 +5086,7 @@ void K_drawKartHUD(void)
|
|||
V_DrawThinString(0, 40, V_SNAPTOTOP|V_SNAPTOLEFT|V_6WIDTHSPACE|V_ALLOWLOWERCASE,
|
||||
va("RINGS: %d / %d", g_gpRank.rings, g_gpRank.totalRings));
|
||||
V_DrawThinString(0, 50, V_SNAPTOTOP|V_SNAPTOLEFT|V_6WIDTHSPACE|V_ALLOWLOWERCASE,
|
||||
va("DIFFICULTY: %d / %d", g_gpRank.difficulty, MAXBOTDIFFICULTY));
|
||||
va("DIFFICULTY: %d / %d", g_gpRank.difficulty, g_gpRank.difficultyTarget));
|
||||
V_DrawThinString(0, 60, V_SNAPTOTOP|V_SNAPTOLEFT|V_6WIDTHSPACE|V_ALLOWLOWERCASE,
|
||||
va("SPECIAL: %s", (g_gpRank.specialWon == true) ? "YES" : "NO"));
|
||||
|
||||
|
|
|
|||
19
src/k_rank.c
19
src/k_rank.c
|
|
@ -31,6 +31,7 @@ gpRank_t g_gpRank = {0};
|
|||
void K_InitGrandPrixRank(gpRank_t *rankData)
|
||||
{
|
||||
UINT8 numHumans = 0;
|
||||
UINT32 laps = 0;
|
||||
INT32 i;
|
||||
|
||||
memset(rankData, 0, sizeof(gpRank_t));
|
||||
|
|
@ -64,7 +65,18 @@ void K_InitGrandPrixRank(gpRank_t *rankData)
|
|||
|
||||
rankData->totalRings = grandprixinfo.cup->numlevels * numHumans * 20;
|
||||
|
||||
UINT32 laps = 0;
|
||||
if (grandprixinfo.masterbots == true)
|
||||
{
|
||||
rankData->difficultyTarget = MAXBOTDIFFICULTY;
|
||||
}
|
||||
else
|
||||
{
|
||||
rankData->difficultyTarget = min(
|
||||
MAXBOTDIFFICULTY,
|
||||
K_BotStartingDifficulty(grandprixinfo.gamespeed) + ((grandprixinfo.cup->numlevels + 1) / 2)
|
||||
);
|
||||
}
|
||||
|
||||
for (i = 0; i < grandprixinfo.cup->numlevels; i++)
|
||||
{
|
||||
const INT32 cupLevelNum = grandprixinfo.cup->cachedlevels[i];
|
||||
|
|
@ -131,7 +143,10 @@ gp_rank_e K_CalculateGPGrade(gpRank_t *rankData)
|
|||
ours += (rankData->rings * ringsWeight) / rankData->totalRings;
|
||||
}
|
||||
|
||||
ours += (rankData->difficulty * difficultyWeight) / MAXBOTDIFFICULTY;
|
||||
if (rankData->difficultyTarget > 0)
|
||||
{
|
||||
ours += (rankData->difficulty * difficultyWeight) / rankData->difficultyTarget;
|
||||
}
|
||||
|
||||
ours -= rankData->continuesUsed * continuesPenalty;
|
||||
|
||||
|
|
|
|||
|
|
@ -39,8 +39,10 @@ struct gpRank_t
|
|||
UINT32 rings;
|
||||
UINT32 totalRings;
|
||||
|
||||
boolean specialWon;
|
||||
UINT8 difficulty;
|
||||
UINT8 difficultyTarget;
|
||||
|
||||
boolean specialWon;
|
||||
};
|
||||
|
||||
extern gpRank_t g_gpRank;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue