Commit graph

2185 commits

Author SHA1 Message Date
AJ Martinez
136800ec23 When hit at -20 rings, die 2023-05-30 03:03:34 -07: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
Oni
5c5157bce5 Merge branch 'finish-jingles-tidy' into 'master'
Finish Jingles Tidy

See merge request KartKrew/Kart!1217
2023-05-10 06:42:54 +00: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
toaster
9497941ef6 P_DoAllPlayersExit: Play finish sounds on successful execution
- If a local player is already finished, don't play any sound
- If the local players finish as a result of this, play the race finish line cross sound
- Else, play the race opponent finish line cross sound
2023-05-02 18:16:26 +01:00
toaster
12ecb1f7a4 P_DoPlayerExit changes
- Add flag application in function signature
    - Consistent gating of extra PF_NOCONTEST application behind not already exiting
        - This should fix dying after winning in K_Cooperative gametypes breaking things
- P_DoAllPlayersExit
    - Consistent condition of playeringame, spectator, exiting, etc checks
    - Also could force-give a life (for Battle Prisons)
2023-05-02 18:16:26 +01:00
toaster
6882ea7671 P_EndingMusic: Change priority
- In gametypes where you can exit successfully but get PF_NOCONTEST, play the _lose jingle instead of RETIRE
    - Affects Prison Break, Sealed Stars
- If you're losing, even if in first place, don't play the _first jingle
    - Affects Prison Break
2023-05-02 18:16:26 +01: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
ee3bf6d117 P_CheckRaceGriefing: Fix typo that rendered antigrief ineffective 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
581567dfae musiccountdown
A system for level completion jingles.
- G_Ticker
    - Call P_EndingMusic after a certain amount of time has elapsed to begin a jingle
    - Play O_RACENT after the jingle's completion instead of baking it or an equivalent into the music
- P_EndingMusic
    - Change the function signature to not take a player
    - Pick from a series of const char* jingles, instead of sprintfing into a buffer
        - _first
        - _win
        - _lose
        - RETIRE
    - Simplifying logic to handle intermission music
2023-04-30 21:47:07 +01:00
toaster
74d6445a56 Integrate Ring Racers jingles into the inherited-from-SRB2 JT_ jingle system
Most of this work was completed last year by Sal.
- JT_INVINCIBILITY
- JT_GROW
Future work:
- Actually use the S_RecallMusic system (for some reason it doesn't play nice so had to disable it)
2023-04-30 20:50:12 +01:00
Sal
0fb691022b Merge branch 'fix-reset-interpolation' into 'master'
P_Ticker: update view interpolation at the start of a tic

See merge request KartKrew/Kart!1192
2023-04-25 01:50:51 +00:00
Sally Coolatta
85eaf2eeea Make camera follow platform momentum 2023-04-23 14:51:29 -04:00
Sally Coolatta
57022fafe5 Move camera Z slightly faster
RR has more & taller slopes than SRB2K, so the old values were a bit jarring (you go off-screen a LOT more often)
2023-04-23 14:47:47 -04:00
James R
e8a8064da9 P_Ticker: update view interpolation at the start of a tic
This lets R_ResetViewInterpolation only need to be called
once from game logic.
2023-04-22 20:40:35 -07:00
AJ Martinez
b3e7eed018 Merge remote-tracking branch 'origin/master' into serverside-pwr 2023-04-14 20:05:25 -07:00
AJ Martinez
e3ea9df683 Fix sliptide death-spirals on input boundary cross 2023-04-12 01:26:33 -07:00
AJ Martinez
d870bf0416 Fix min/max allowing for theoretical handling breakage in camera-sliptide logic 2023-04-12 00:47:00 -07:00
AJ Martinez
4f569641fc Store total wins in profiles 2023-04-11 19:38:02 +01:00
AJ Martinez
b4ffc33fcb Sliptide-aware camera steering, fix countersteer easing 2023-04-11 00:15:44 -07:00
Oni
485af970e6 Merge branch 'sealed-smooth' into 'master'
Sealed Smooth

See merge request KartKrew/Kart!1154
2023-04-09 03:07:26 +00:00
AJ Martinez
972ed1c1a7 Bump latency-based angle correction 2023-04-07 23:52:34 -07:00
AJ Martinez
6871639483 Don't disable easing on driftend, it wasn't actually doing anything 2023-04-07 23:47:30 -07:00
AJ Martinez
2001b5efd9 More responsive drift end 2023-04-07 23:02:03 -07:00
toaster
4b7aa368b5 P_GetNextEmerald: Accomodate map reuse in GP
- In GP, use struct's cup pointer to get Emerald so the active cup ID is in control
- Outside of GP, get cup pointer from map so Emerald is always the "canon" one
2023-04-08 00:05:18 +01:00
AJ Martinez
d84ee59887 Merge branch 'fix-spectator-noclip' into 'master'
Let noclip cheat remove floor/ceiling clipping while in spectator mode

See merge request KartKrew/Kart!1134
2023-04-02 21:20:08 +00:00
toaster
b2969af84f P_IsLocalPlayer: Fix returning whether consoleplayer was in consoleplayer's party (ie, always true) instead of actual requested player.
Fixes replacement music applying when bots use powerup items.
2023-04-02 17:43:02 +01:00
James R
9b5b07b03c Completely rewrite party management code
Replaces g_splitscreen.c with g_party.cpp. Simplifies
party management functions.

Moves externs out of already bloated doomstat.h and
g_game.h into g_party.h.

Cuts down on globals spam.
2023-04-02 17:26:33 +01:00
James R
652fb5452e MF_NOCLIPHEIGHT: remove restrictions on first-person camera
Fixes spectator noclip camera being clamped to
floor/ceiling heights.
2023-04-02 05:22:17 -07:00
AJ Martinez
fa60a3a20c Use bot mo angle in demo chasecam 2023-03-26 15:28:09 -07:00
Chromatian Keiske
77117bbc9f Merge branch 'fix-retry' into 'master'
Fix retry life/rank farming + fix buffered retry

Closes #475

See merge request KartKrew/Kart!1083
2023-03-25 05:50:06 +00:00
Oni
b9bbb6cb8a Merge branch 'conditions-cascading' into 'master'
Conditions Cascading

Closes #366

See merge request KartKrew/Kart!1053
2023-03-23 23:51:30 +00:00
James R
f5f85cc3e4 Refactor lives and rank increase to occur at level end transition, not when the player finishes
Fixes exploiting retries after finishing in good standing
to farm lives and rank. These are now applied when you can
no longer retry.

Extra life sound effect still plays as soon as you finish
the race.
2023-03-22 20:49:33 -07:00
James R
d0719ef5ba Fix mobj reference management of player->mo
Thanks to toaster
2023-03-20 20:00:10 -07:00
toaster
4c0077e07c Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading 2023-03-19 13:01:06 +00:00
Gunla
b8f3c7e357 Merge branch 'fastfall-with-speed' into 'master'
Scale fast fall momentum with speed at time of trigger

See merge request KartKrew/Kart!1047
2023-03-18 23:00:06 +00:00
James R
34e6ef5496 Merge branch 'special-stage-acs' into 'master'
ACS extensions for Special Stages

See merge request KartKrew/Kart!1036
2023-03-18 11:06:50 +00:00
toaster
2e1efaff0c Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading
# Conflicts:
#	src/k_battle.c
#	src/k_hud_track.cpp
#	src/k_kart.c
#	src/p_inter.c
2023-03-14 21:59:19 +00:00
Sally Coolatta
0b622639e0 Fully implement existing script type
Missed in the original merge.
2023-03-14 08:02:56 -04:00
James R
94faf486fd Add player->fastfallBase 2023-03-13 20:09:20 -07:00
James R
09a6c9a086 Lives cap 9 -> 10 2023-03-13 18:40:01 -07:00
James R
1f70b9c63c Merge remote-tracking branch 'origin/bumpers-ARE-health' 2023-03-13 00:51:44 -07:00
toaster
01f6eb71f5 Optimisation: reduce the number of calls to M_CheckUnlockConditions
- For P_Ticker()'s calls to M_UpdateUnlockablesAndExtraEmblems
    - Do not check non-UCRP_REQUIRESPLAYING conditions
        - Controlled by a new `boolean doall` parameter to M_UpdateUnlockablesAndExtraEmblems
        - Most other contexts have this as true
        - Forced true if update is meant to be silent
    - Only check UCRP_REQUIRESPLAYING conditions if a relevant property has been touched
        - Controlled by a new `boolean checkthisframe` property on roundcondition_t
        - Set in all contexts where roundcondition_t is modified
        - Would also be set on lap change, but that case is already covered by the following
- Check all conditions, both UCRP_REQUIRESPLAYING and not, on:
    - local player K_HandleLapIncrement
    - local player P_DoPlayerExit
    - local player P_DoTimeOver
    - Controlled by a new `boolean deferredconditioncheck` property on gamedata_t
2023-03-12 13:52:28 +00:00
AJ Martinez
fcd1fe8b8b Wavedash refinement 2023-03-11 17:20:44 -07:00
James R
a3c64068e6 Replace bumpers completely with health
Adds some functions:

- K_Bumpers, bumper count for the count, intended for
  where player->bumpers was used in HUD and visual
  contexts.
- K_BumpersToHealth, converts bumper count to health
  points.

player->mo->health replaces player->bumpers where it was
used in health contexts.

Removes some functions:

- K_HandleBumperChanges
- K_DestroyBumpers

Everything K_HandleBumperChanges did has either been
removed or moved elsewhere. P_KillMobj also already called
K_CheckBumpers.

K_DestroyBumpers became pointless after player->bumpers
was removed.
2023-03-07 22:54:33 -08:00
toaster
d2c36c952a Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading
# Conflicts:
#	src/k_grandprix.c
#	src/k_grandprix.h
2023-03-07 19:37:46 +00:00
James R
aa927a5b00 Merge branch 'overtime-spectator' 2023-03-07 01:45:16 -08:00
James R
ccd933556d Battle: activate director after dying to Overtime Barrier 2023-03-06 18:52:59 -08:00