Commit graph

22947 commits

Author SHA1 Message Date
Sally Coolatta
728cd1bd7b Bots: Add Kitchen Sink to K_BotPickItemPriority 2023-05-15 19:08:54 -04:00
Sally Coolatta
fc1f586f47 Fix K_AirFailsafe speed 2023-05-15 19:04:06 -04:00
Sally Coolatta
69181e4ff2 Bots: Fix a couple bugs with item priority
- Fix Ring Debt priorities being used even when not at 0 rings
- Fix extra item results not being considered for priorities.
2023-05-15 06:51:13 -04:00
Sally Coolatta
7d7875d7be Bots: New spindash conditions are more specific
- Uphill check is ignored if you have slope resistance, or if you're moving fast enough to overpower it.
- Offroad check is ignored if it wouldn't slow you down.
- Made slow acceleration check have a higher range.
2023-05-15 06:49:31 -04:00
Sally Coolatta
12ff9dc2ba Bots: Lv.1 doesn't wait as long for items
3sec -> 2sec
2023-05-15 06:31:01 -04:00
Sally Coolatta
c43fc4e924 GP: New difficulty increase algorithm
Before, it did level up based on how much the status quo was messed up (if a loser bot got pushed in front, or a rival bot got pushed ahead).

Now, bots will additionally level up based on the best of the 4 players' overall performance, and the performance of the human player that beat them. This means that back of the pack bots will level up more often and the rival won't level up if you place poorly.

The new formula ensures ALL bots are guaranteed at least 1 level up if you come in first place, whereas the old formula had a decent chance of not leveling up some bots. However, loser Chao getting boosted from 12th into 1st, or your rival getting sent to 7th, will still wildly piss them off :B
2023-05-15 06:13:01 -04:00
Sally Coolatta
a7f27948f3 Waypoints: If a normal & shortcut paths overlap, use the normal path 2023-05-15 04:00:24 -04:00
Sally Coolatta
d367bacc39 Bots: Decide what item they want without using RNG
Makes Lv.1 a lot less aggressive, and Lv.MAX slightly more aggressive. But the main advantage is simply that they are deterministic again and I can  :D
2023-05-15 03:05:28 -04:00
Sally Coolatta
77ab86ab34 Bots: Increase spindash confirm further
Felt like they were spindashing just sliiiightly too often.
2023-05-14 19:33:38 -04:00
Sally Coolatta
d55c9038cc Bots: Can now use Ring Shooter
Reuses most of the anti-grief code, but with a very low timer (5sec) and they simply hold Y when reaching it until they eventually respawn from the ring shooter.
2023-05-14 19:32:51 -04:00
Sally Coolatta
34b12cc436 Bots: Improve spindash behaviors further
- Added new spindashing conditions:
   - In offroad.
   - Trying to go up-hill on a steep slope.
   - On a conveyor going the opposite direction they're trying to go. (Barren Badlands)
- Instead of checking for any spindash condition and adding to the confirm timer, it adds to the confirm timer for every single condition.
    - Increased the confirm time from 2sec to 3sec to accommodate for this change.
- Fixed not using precise momentum angle, causing the low-speed scenarios spindash is intended for to not always work.
- Bots now check for spindash conditions even in damage states, allowing for spindashes after a spinout.
- Fixed the spindash confirm not decreasing over time when entering a condition and then exiting it, causing random spindashes when it wouldn't make sense.
2023-05-14 18:26:31 -04:00
James R
d1ec068e84 movie_size: default 8 mb -> 25 mb
Discord limit was raised.
2023-05-14 00:09:38 -07:00
Oni
cf304a09d4 Merge branch 'bot-thingies' into 'master'
Lots of bot changes

See merge request KartKrew/Kart!1229
2023-05-13 08:22:10 +00:00
Sally Coolatta
7cb0b74cac Use more explicit floor/ceiling FOF sort 2023-05-13 04:13:35 -04:00
Sally Coolatta
5ac7926e39 Prediction nudge is based on original WP radius
Previously based on prediction radius, which meant it was so low that it might barely even nudge at all. Now we try to nudge a lot, but clamp the radius to make it thinner if it goes off-road.
2023-05-13 01:59:07 -04:00
Sally Coolatta
7db53abdf7 Fix object nudge search being too small 2023-05-13 01:23:52 -04:00
Sally Coolatta
002e25905b Add FOF behavior switch to P_LineOpening
Finally fixes the very specific issue on Endless Mine ( https://cdn.discordapp.com/attachments/1006454720686202951/1106749881663631420/image.png )
2023-05-13 01:14:40 -04:00
Sally Coolatta
6fa821b2d3 Local P_LineOpening result + traversal leniency
P_LineOpening results are stored in a locally made struct instead of being a bunch of disorganized globals.

Waypoint traversals can go thru 1 line, if it was blocked by step-up rules, for free, similar concept to sound-blocking lines in Doom.
2023-05-13 00:39:36 -04:00
Sally Coolatta
66f0c7c9f0 Fix waypoint traversal with slopes 2023-05-12 23:10:56 -04:00
toaster
d2a2115abf Merge branch 'fix-gacha-lob' into 'master'
Adjust Gachabom lobbing trajectory and backward thrown radius

See merge request KartKrew/Kart!1232
2023-05-12 12:10:30 +00:00
toaster
488cd3bd85 Merge branch 'fix-orbinaut-splay' into 'master'
Fixed dropped orbinauts

See merge request KartKrew/Kart!1230
2023-05-12 12:10:26 +00:00
James R
bdd36d4526 K_SpawnKartMissile: scale backward thrown nerfs to gamespeed for perfect consistency 2023-05-11 20:32:50 -07:00
James R
b08890bf92 Orbinauts/Gachabom: widen backward-thrown orbitting radius 2023-05-11 19:33:01 -07:00
James R
e628d153ad Gachabom: switch to lobbed mode before trajectory is set
Fixes lobbed Gachabom trajectory being inconsistent with
other lobbed items.
2023-05-11 19:17:40 -07:00
Oni
327edf9831 Merge branch 'water-unfuck' into 'master'
Scale underwater strafe from actual base speed

See merge request KartKrew/Kart!1224
2023-05-12 01:21:45 +00:00
Oni
aa50a34d7a Merge branch 'new-intermission' into 'master'
New intermission

See merge request KartKrew/Kart!1231
2023-05-12 01:02:09 +00:00
toaster
9ec6a6bbe0 HU_DrawRankings: Fix finish time (was using laps converted to seconds instead of realtime) 2023-05-12 00:02:51 +01:00
toaster
9179e6fd86 Since intermission is bordered, don't do widescreen accomodation for the Standings xoffset slide 2023-05-11 23:12:57 +01:00
toaster
39682a241d Y_PlayerStandingsDrawer: Set a minimum y height to prevent overlap with the header text 2023-05-11 23:08:26 +01:00
toaster
27dc9a3006 M_DrawPause: Only draw roundqueue outside of GS_INTERMISSION - that's already drawing it 2023-05-11 23:07:02 +01:00
toaster
c9b438d50d Show Round Queue on Pause menu
Also includes secret support for widescreen.
I was planning to put this on tab rankings, which doesn't have borders.
Pause menu does, but it would be a waste to strip it back out again.
2023-05-11 22:44:09 +01:00
toaster
c1eb01c03d Ping for Y_PlayerStandingsDrawer
TODO: CPU indicator
2023-05-11 21:39:06 +01:00
toaster
36d8bce14d Replace K_DrawTabRankings with Y_PlayerStandingsDrawer
TODO: Ping, LAGLESS
2023-05-11 18:11:40 +01:00
toaster
7081e98d9b Y_PlayerStandingsDrawer: Abstract y_data_t inputs
In the process, fix a longstanding interp bug where the jitter on tally increase would be for only one rendered frame, not one full tic.
2023-05-11 18:09:57 +01:00
toaster
efa849c8cc Y_PlayerStandingsDrawer: Make player index referencing in loop cleaner 2023-05-11 16:46:03 +01:00
toaster
c712cd7452 Prepare value string for intermission screen once, rather than every rendered frame
("RETIRED.", "0:24:13", "27", "1004", "----", etc)
2023-05-11 16:37:06 +01:00
toaster
77aa563a74 Depointerify several properties on y_data
- character is written directly
- color is written directly
- no more duplication of the player_names pointer
2023-05-11 16:36:03 +01:00
toaster
d581389c9c Y_PlayerStandingsDrawer: All local splitscreen players are now highlighted on the results screen
- Uses function pointers to highlight display players instead in demo playback
- Was previously doing this to avoid all players being highlighted in local splitscreen, but this is now relevant there too thanks to bots
2023-05-11 14:44:27 +01:00
toaster
0757d39930 Slight cleanup after extraction
Fixes Lua being able to hide the timer in the corner
2023-05-11 14:32:41 +01:00
toaster
7ddbd23f98 Y_PlayerStandingsDrawer
*Also* reduces how absolutely monolithic Y_IntermissionDrawer is.
2023-05-11 14:24:49 +01:00
toaster
0a7e8d9bf3 Y_RoundQueueDrawer
Reduces how absolutely monolithic Y_IntermissionDrawer is.
2023-05-11 14:08:09 +01:00
James R
21703c1504 Orbinaut shield: fix dropped state
- Fixes dropped orbinauts driving in circles
- Fixes dropped orbinauts not stopping once land on ground
2023-05-10 21:53:37 -07:00
Sally Coolatta
a8af5b7616 Improve general bot handling
- Their waypoint radius gets thinner quicker
- Waypoint distance is scaled with each ones' floor slope, instead of done once at the end of the prediction.
- Prediction is pulled back further when it goes through a wall
- Prediction starts earlier and goes less far
- Bots will brake at shallower angles (allows them to brake-turn more often)
- K_AddDodgeObject and K_AddAttackObject now adjust based on the radius of the object
- Fixed K_AddDodgeObject adding to the goto objects instead of avoid objects
- Optimized blockmap search size for K_FindObjectsForNudging
- Current waypoint is no longer cleared each frame
2023-05-10 22:25:24 -04:00
Sally Coolatta
7d4720b1a6 Fix bot rubberband being different per map scale 2023-05-10 20:28:42 -04:00
Sally Coolatta
a2c57d7066 Fix bot extra friction on ice TERRAIN 2023-05-10 20:27:11 -04:00
Sally Coolatta
d129422382 Bots can now see TERRAIN-based offroad / damage 2023-05-10 19:55:41 -04:00
Sally Coolatta
3450a0126f Bot traversal wall detection improved, and waypoints do it too 2023-05-10 19:52:40 -04:00
Sally Coolatta
b72b8f354e lowfloor/highceiling respects FOFs properly
Found while working on bot changes to respect step-up, lowfloor would occasionally be the floor below instead of the FOF. Also code cleanup to remove redundant / unused stuff.
2023-05-10 19:48:08 -04:00
toaster
e3c3a8c80a Sliding of the progression bar
- On the last non-rank-restricted round in the queue, if the final entry is visible (you've been to it before OR you're just about to go to it for the first time), slide over before the bar fills up.
- Adds one second to the timer to give it extra breathing room
2023-05-10 20:40:01 +01:00
toaster
174b58c043 Pixel perfect progression bar filling
- Final line now ALSO uses ClipRect
- Reduce existing overreliance on ClipRect. A little overdraw is fine to prevent gaps
2023-05-10 14:42:59 +01:00