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
Uses an unordered-map system so we don't loop through every item constantly
Opting for trying to fit everyone on the screen; 320x200 users can deal with it
Scrolling is not yet implemented, and this system isn't netsynched yet
* The "unique item" flag has moved to kartitem, and split to accomodate
shields (item slot only, not paper items)
* "BGoneTime" renamed to "CooldownTime"
* indirectitemcooldown has been folded into the existing cooldown system,
all results with the indirect flag share the highest cooldown time
* Added cooldown debugger to kartdebugdistribution
* Fixed Thunder Shield not resetting cooldown when killing an SPB
* SPB forcing has been generalized as a 'forceme' variable that any item can set to force itself (based on priority)
* SPB odds in general have been generalized; the KRF_RUNNERAUGMENT flag lets any item use SPB odds rules, minus the forcing
* Items can modify or override their odds with unique odds functions
* Odds tables are further indexed by 'item format', an evolution of the kart item type (Legacy, Alternate) system
* Distribution debugger has been updated in respect to the fact that any item can force themselves. Red 'FRC' text, including the force priority, appears on any item forcing itself
Too much shit to explain, read the diff (you should anyway!)
Very sloppy, expect lots of fixes
TODO: SOC it all, separate "active odds" table, how to handle alt items
* Player gains a big speed boost
* Anything that would squish a shrunken player in Legacy (save for Grow players) flips them over here
* Most items rolled are doubled: singles become doubles, doubles become quadruples, and you can roll 6 bananas
* Certain multi items (3sneaker, 3orbi and 4orbi, 2jawz, decanana, ballhog) do NOT get doubled for balance reasons
* Shrunken players get rival bot odds, making their rolls more aggressive and frantic