Commit graph

22852 commits

Author SHA1 Message Date
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
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
Sally Coolatta
0ec5c4346b Fix Block Players for waypoint detection 2023-05-07 14:34:03 -04:00
VelocitOni
64e091414b Default cam_height increase
75 --> 95  |  Tyron, Sal, and Oni want to test higher cam_height for readability (may drastically help flat maps).
2023-05-06 02:07:20 -04:00
Oni
348549a1cb Merge branch 'quake-crash' into 'master'
P_StartQuake: Use PushQuake (resolves #543)

Closes #543

See merge request KartKrew/Kart!1223
2023-05-05 13:14:23 +00:00
toaster
ca416a3b7f P_StartQuake: Use PushQuake
- Consistency
- Prevents memory corruption when the quakes list is empty
2023-05-05 13:23:27 +01:00
Sal
69b9805d5b Merge branch 'acs-fix-fof-trigger' into 'master'
ACS: Fix "on enter" triggers on intangible FOFs

See merge request KartKrew/Kart!1221
2023-05-04 15:57:43 +00:00
Sally Coolatta
a7d22f8468 ACS: Fix floor & ceiling FOF triggers 2023-05-03 19:11:08 -04:00
Sally Coolatta
ce712ae68d ACS: Fix enter triggers on intangible FOFs 2023-05-03 18:40:23 -04:00
toaster
99a1e47487 Merge branch 'freeplay-align' into 'master'
K_drawKartFreePlay: Fix alignment for good

See merge request KartKrew/Kart!1220
2023-05-03 20:26:47 +00:00
toaster
d6c86b97b6 K_drawKartFreePlay: Fix alignment for good
Uses V_StringScaledWidth instead of manually inserted spacing
2023-05-03 18:05:51 +01:00
Sal
41770be966 Merge branch 'acs-sector-no-spectator' into 'master'
ACS: Prevent spectators from using sector actions

See merge request KartKrew/Kart!1219
2023-05-03 14:49:40 +00:00
Sally Coolatta
f56504e0d4 ACS: Prevent spectators from using sector actions 2023-05-03 09:37:48 -04:00
Sal
2cba1b7820 Merge branch 'acs-get-set' into 'master'
ACS: Property get/set functions

See merge request KartKrew/Kart!1203
2023-05-03 13:30:15 +00:00
Sally Coolatta
31f0df6103 ACS: Fix tag iterations not working 2023-05-02 19:30:09 -04:00
Sally Coolatta
8588881f4d ACS: Add SIDE_BOTH support for SetSideProperty 2023-05-02 18:44:30 -04:00
Sally Coolatta
4f2c47fde0 ACS: Try to fix sprnames garbage 2023-05-02 18:44:30 -04:00
Sally Coolatta
d953049c78 ACS: User properties can tell bool from string 2023-05-02 18:44:30 -04:00
Sally Coolatta
427ffceac9 ACS: Get/SetThingProperty 2023-05-02 18:44:29 -04:00
Sally Coolatta
48f7d53cd8 ACS: Allocate user properties with PU_LEVEL 2023-05-02 18:44:29 -04:00
Sally Coolatta
f8744560df ACS: Add SIDE_PROP_REPEATCOUNT
Missed this one.
2023-05-02 18:44:28 -04:00
Sally Coolatta
d9382f2100 ACS: UDMF user properties
Lines, sides, sectors, and things now all support the "Custom" tab properly. Label a property as `user_[whatever you want]` in this tab, and it will be added to the structure. ACS will then be able to retrieve it using the `Get[x]UserProperty()` function.
2023-05-02 18:44:27 -04:00
Sally Coolatta
a366948c62 ACS: Remove SECTOR_PROP_SPECIAL
This is only used in binary, and ACS shouldn't be implementing any binary stuff anymore.
2023-05-02 18:44:26 -04:00
Sally Coolatta
5521284fa0 ACS: Implement Line and Side get/set functions
Additionally, these all now support tag 0 as getting/setting properties from the activator.
2023-05-02 18:44:26 -04:00
Sally Coolatta
e27e6c1353 ACS: Get/Set property prototyping
Mostly proof-of-concept so that Charyb can play around with it and tell me if it works for her.
2023-05-02 18:44:25 -04:00
Oni
1058d210d1 Merge branch 'boostpower-terrain-particles' into 'master'
Slowdown Terrain Particle repair

See merge request KartKrew/Kart!1166
2023-05-01 19:33:02 +00:00
Oni
b5d832c636 Merge branch 'new-quake' into 'master'
Improve quake effects

See merge request KartKrew/Kart!1216
2023-05-01 19:29:19 +00:00
Sally Coolatta
60e80d876d Improve quake effects
- Quake epicenter + radius now work.
- Since quake epicenter works, removed the display player check on all of the quakes, so other players can feel them.
- Multiple quake effects are stored in a linked list and dynamically created/freed, so they can stack together.
- Made in china
- Made the quake effects only work on the z axis.
- Quakes now alternate their intensity and dampen it over time, instead of randomly picking values.
- Added quake effects for offroad and stair-jank
- Disabled quakes in reducevfx
- Removed actionmovie and windowquake (sorry jartha)
2023-05-01 14:24:32 -04:00
toaster
f450789a08 Final rearrangement
- If terrain has footsteps, always show those footsteps regardless of player speed slowdown
- Otherwise, if player is slowed down, show default offroad particles
2023-05-01 17:52:56 +01:00
toaster
a08a23101c Merge branch 'antigrief-returns' into 'master'
[Antigrief pt1] Spectator re-entry timer

See merge request KartKrew/Kart!1168
2023-05-01 16:19:51 +00:00
toaster
3d9d9ba1e6 P_Ticker: Do not run antigrief detection if there are no waypoints 2023-05-01 17:10:02 +01:00
toaster
ee3bf6d117 P_CheckRaceGriefing: Fix typo that rendered antigrief ineffective 2023-05-01 16:57:35 +01:00
toaster
d09cfe6704 antigrief_cons_t: Increase maximum for parity with the previous entry in the series 2023-05-01 16:57:35 +01:00
toaster
477eb000e5 Do not subtract grief strikes for finishing a race normally
Prevents scenarios where someone engages in alternating sporting and unsporting behaviour and never experiences lasting consequences
2023-05-01 16:57:35 +01:00
toaster
ab68be49e1 cv_antigrief
- Increments a timer on human players who aren't making progress, does it even faster if they're going backwards.
    - Only applies in:
        - Netgames
        - GTR_CIRCUIT after the timer starts
        - If there's no timelimit, pointlimit, or K_Cooperative (because unproductive behaviour there will be punished by other rules)
    - The rate at which this changes needs trial and error, but getting the feature functional is more important to start out with.
- If this timer reaches cv_antigrief's value in seconds , the player gets a "Grief Strike"
    - This doesn't happen if:
        - There's only one active player in the server, so FREE PLAY permits mappers to test what increments/decrements the counter
            - Turn `debugwaypoints` on to observe this
        - The cvar is set to 0
    - Less than 3 grief strikes is a forced spectate
    - Anything more is a kick via "automatic grief detection"
        - Unless your node is the host (or an admin)
    - Remove grief strike strike for finishing normally

# Conflicts:
#	src/d_clisrv.h
2023-05-01 16:57:35 +01:00
toaster
d4dbc1fe30 P_Ticker: Seperate out local player device rumble handling into its own inlineable function
Clears some space for antigrief handling
2023-05-01 16:57:34 +01:00
toaster
b69a575923 K_CheckSpectateStatus: Clean up
- Calculate numingame with first loop
- Explicitly set both spectatewait and spectatorReentry to 0 when not a spectator
- Return sooner for cv_maxplayers cap reaching
- Ignore spectatorReentry at an earlier point in the function, instead of complicating the final despectating to use two iteration values
2023-05-01 16:57:34 +01:00
toaster
9e30ffcdb7 Got_KickCmd: Do not kick players with the server node from the server (this shut down the server previously !?) 2023-05-01 16:57:34 +01:00
toaster
15b0141700 Spectator re-entry timer
- On becoming a spectator in a netgame, there is a delay before you can de-spectate.
    - 30 seconds by default.
        - This can be changed using the cvar `spectatorreentry`.
    - ...unless there's only two people left including you, in which case it's three minutes!!
        - This can be changed using the cvar `duelspectatorreentry`.
        - If spectatorreentry is set to greater than duelspectatorrentry, the former is used instead.
    - This timer is wiped on mapload and intermission, so NEW CHALLENGER APPROACHING !! and level changes in general allow people in.
- General purpose cleanup of K_CheckSpectateStatus
2023-05-01 16:57:34 +01:00
toaster
d50e3a1895 Got_Teamchange: Do not repeatedly declare a player has become a spectator if they already were 2023-05-01 16:57:34 +01:00
Oni
1c9ee9f907 Merge branch 'chunky-items' into 'master'
Bigger, chunkier items test

See merge request KartKrew/Kart!1177
2023-05-01 03:28:52 +00:00