DUDE TOUHOU LMAO
Jokes aside:
* Lunatic = Master difficulty with modifications to make the races
significantly more difficult:
* Introduces a "lunaticmode" boolean to grandprixinfo;
the demoversion has been upped to 0x0010 due to this
* The bot modifier is, at MINIMUM, 2.0, making them aggressive as hell;
Rival bots use a 2.5 modifier
* Bump Spark is always off in this mode
* RUNNERAUGMENT results have their distances significantly shortened;
if a rival bot takes the lead, this distance is shortened even FURTHER
so they don't frontrun against the human player endlessly
* Alt. Invinc shows up earlier as a sort of "mercy" for human players;
it would otherwise not show up until the race was effectively over
* Maniac = Nightmare difficulty (Master at Expert speed)
with Lunatic's changes
This will get reworked later down the line (hopefully), but for now, I
think it ought to be consistent regardless of stats. Should make driftpoint
placement less of a nightmare at least
Bot logic is now handled exclusively by the server, now in the actual game
loop code, rather than during ticcmd generation. No TICCMD_BOT needed!
botdata_t has been added to store any variables that clients don't need.
Behavior differences:
* Brakedrifting actually works now... to the detriment of the bots
* Respawn triggers 1 second sooner (and actually causes braking)
* No longer spams respawn when a track lacks waypoints
* Turning might be less responsive?
`botvars.turnconfirm += cmd.bot.turnconfirm` is gone... who knows
* No longer affected by timescale
Plus, no more outdated or copy-pasted comment blocks!
A subtle change, but means the bots are thinking ahead more about the track's design, rather than just what's in front of them. Instead of just "convenient" paths, they'll actively think about which path is the shortest.
The most significant thing this effects is making them use shortcuts more often.
While I finally pushed to do this because of the epic Blue Sphere reference, I was kinda thinking about doing this for a while, because it gives more room for bots to level up during Hard GP.
I thought about just making the new level cap go up normally, but I decided on keeping the bots' passive buffs (like top speed & ring boosts) go up linearly, while rubberbanding range is kept the same.
I don't think I can properly explain it, but this basically means level 13s are a touch harder than old level 9s before, and new level 9s are touch easier than old level 9s. Basically think of it as more level range than actually making the bots harder.
The expanded range means that Hard GP can start off easier, but end harder. (And of course, Master is even more ridiculous c:)
- K_FindBotController returns the line_t directly, instead of a linedef index.
- Trick panel code is in its own function.
- Try to fix infinite bot heat death
Instead of searching for walls around the player, and then deciding to make the radius tighter if it found anyway, it instead checks if the waypoint it's trying to predict towards was blocked by any walls / hazards.
Needs adjusted some, I think its being pulled back too hard sometimes, but I am optimistic about some of the improvements I already saw.
They will no longer do it on a whim after getting bumped out of position of hitting walls, instead checks if they're trying to accelerate and they physically can't.
- If they're already turning in one direction, they are more likely to steer in that direction for objects
- Bots have to want to turn in 1 direction for a few frames in a row before it'll let them
Prevents twitching & makes them less indecisive in general