Commit graph

20199 commits

Author SHA1 Message Date
toaster
f281f47c6f Support alternate gameplay events during GP
- Implementation details:
    - grandprixinfo.eventmode is the reference point
    - All bots have spectator applied and removed at map start depending on eventmode, and I've done my best to guard against side effects of not removing them entirely
    - You shouldn't turn off grandprixinfo.gp when turning on things like specialStage.active or bossinfo.boss when pursuing eventmode behaviour
    - Probably needs to be integrated into XD_MAP for any future netplay support, is currently disabled.
    - You technically don't have to assign a Capsules map to be the bonus and a Special Stage to be the special. A Capsules map can be assigned to a Special Stage too, and a Boss can be assigned to either of them.
    - Special Stages are still just as incomplete as they were before.
- Break the Capsules has special behaviour.
   - Timelimit starts at 20 seconds.
   - Earn 10 seconds (plus a little extra cheaty time) every capsule you destroy.
   - WIN + extra life if you bust all the capsules, COOL if you get some but run out of time, LOSE if you lose your bumper or run out of time without breaking a single capsule.
   - Supposed to also give you rings, but ran into a LOT of difficulty with this and didn't want to commit half-baked stuff, so it'll be a later project.
Also:
- Fix a long standing bug where totalring was reset between maps, preventing the sum from adding up across GP rounds and depriving you of extra lives you were owed.
- Fix an issue where Break the Capsules record attack was KARTSPEED_HARD.
- Send timelimitintics in savegames, since it's handled seperately now.
2022-10-14 18:34:43 +01:00
toaster
f926842b30 Fix replacing cups' map lists not properly reassigning the cachedlevels 2022-10-14 13:19:20 +01:00
toaster
cf6ffcf15d Improved Battle Capsule pop visual
- Play a sound on initial hitlag, since pops are now delayed
- Add hitlag visual to sides
- Add horizontal momentum based on:
    - Deflection of the object damaging it
    - Whatever its momentum was before destruction
2022-10-13 21:34:36 +01:00
toaster
c2ef5a32e9 Seperate FINISH text from khud_cardanimation
- Fixes an issue where the card animation and the FINISH animation operating on two different timers, but using the same variable, would intefere with each other
- Also makes khud_fault use the same drawer, so it can benefit from interpolation
2022-10-13 18:14:48 +01:00
toaster
c8471c7c27 Rework exit timing nittygritty
- exitcountdown is now used for both No Contest and regular exits
    - Set in P_DoPlayerExit
    - Handles sending XD_EXITLEVEL in P_Ticker
- player->exiting is now 0 or 1 (we can make it a bool or a new timer later)
- Fixes a longstanding bug where failing a GP round could restart multiple times
Also:
- Fix a possible waiting-in-the-wings issue where mapchanges would occour client-side in K_CheckBumpers
- Add `gptest` cheat - sets numlaps to 1 lap on mapload for quick but legitimate(ish) progression
2022-10-13 17:37:35 +01:00
toaster
5103b804ba Simplify intermission timer code
- We had two ways of ending the intermission, but only one would actually be used, and it resulted in code duplication.
- Combine the two ways.
- Disable the reached-but-didn't-do-anything-before-now code path for setting endtic.
2022-10-13 13:12:07 +01:00
toaster
a22d3b201d Make what's going on with K_RetireBots in Y_Ticker/Y_EndIntermission more explicit, in case we add anything else here later. 2022-10-13 12:41:27 +01:00
toaster
9f4ced146a Make intermission timer-dependent material consistent via K_CanChangeRules()
Prevents setting inttime 0 in singleplayer contexts
2022-10-12 20:17:20 +01:00
toaster
00b73d4a48 Rework nextmap a little further
- Set gamemap after intermission, rather than before.
    - Fixes a bug where the NO CONTESTed player wouldn't get cycled out on the 4th round, because it had already been incremented by G_GetNextMap.
- Make the vote screen a special NEXTMAP_VOTING constant, for sanity, and to make cv_advancemap handled all in one place.
    - Along with the above, fixes a bug where changing cv_advancemap would only enable or disable the voting screen, not change the nextmap.
- Call G_EndGame in G_NextLevel, since they were never used seperately.
- Add Special Stage and marathonmode to K_CanChangeRules.
2022-10-12 19:48:01 +01:00
toaster
df467a4a32 Bot skin selection fixes
- The case where entries on the end of the `grabskins` list were invalid
- Double ++ for botskinlistpos meant any successful skin-rival placement also guaranteed an Eggrobo (default skin)
2022-10-12 12:52:08 +01:00
toaster
99705faea6 Add a goofy little jitter to the HUD
- Medium strength at 5 seconds to go
- Big strength in overtime
2022-10-11 23:03:56 +01:00
toaster
243f38227c Rework time limit a bit
- Make timelimitintics handled a bit more like gamespeed, encore, frantic, etc - update on mapload/starttime, not during gameplay
    - Use default setting if can't change rules - this is a surprise tool that will help us later
- Have it properly update when adjusting gametype from the menu
    - Cleaned up SV_StartSinglePlayerServer to do this
- Remove CV_SAVE to prevent time limit bruh moments
2022-10-11 23:00:44 +01:00
toaster
13c8d45764 Rework bot skin randomisation
- Instead of picking over numskins and adjust the number if it picks an already used skin, build and shuffle a list of allowed skins and pick over that instead.
- Fixes some issues with increased weighting towards the skins immediately after your rivals' skins.
- Use PR_RULESCRAMBLE instead of PR_UNDEFINED.
- Why am I doing it in this branch? I'm getting re-acquainted with how bots are handled between matches in advance of disabling them for bonus events without losing or corrupting data.
2022-10-11 18:42:04 +01:00
toaster
dbc067f87a Use GP difficulty str values instead of hardcoded "Master" exception 2022-10-11 16:47:56 +01:00
toaster
44eb099cfb Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into special-stages 2022-10-11 15:44:32 +01:00
Sal
e7b493723f Merge branch 'rename-kart-commands' into 'master'
Rename "kart" prefixed cvars

See merge request KartKrew/Kart!724
2022-10-10 23:33:08 +00:00
toaster
d364e5a5f6 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into rename-kart-commands
# Conflicts:
#	src/d_netcmd.c
#	src/d_netcmd.h
2022-10-10 17:34:28 +01:00
Sal
44eb215fd3 Merge branch 'uncapped-captions' into 'master'
uncapped: Update closed captions only on new tics

See merge request KartKrew/Kart!729
2022-10-09 23:06:35 +00:00
Eidolon
91c0d50c24 uncapped: Update closed captions only on new tics 2022-10-09 15:37:10 -05:00
Eidolon
3f72c41e8c Merge branch 'cmake-exe-uncommitted' into 'master'
Cmake uncommitted and exe rename

See merge request KartKrew/Kart!726
2022-10-09 02:39:21 +00:00
Eidolon
d80db6f51d cmake: add COMPVERSION_UNCOMMITTED 2022-10-08 21:19:04 -05:00
Eidolon
4db2c48cc3 cmake: set executable name to ringracers 2022-10-08 20:38:45 -05:00
Sal
8b58a7563a Merge branch 'cheat-giveitem' into 'master'
"kartgiveitem" -> "give " plus convenience features

See merge request KartKrew/Kart!723
2022-10-08 20:02:36 +00:00
James R
641d3c89b9 Merge branch 'spb-debug' into 'master'
Restore SPB force-seek define as 'spbtest' cvar

See merge request KartKrew/Kart!725
2022-10-03 02:14:41 +00:00
James R
f3545a6e6f Merge remote-tracking branch 'origin/duel-stuff' 2022-10-02 19:10:22 -07:00
James R
b698abb17a Merge branch 'setangle' into 'master'
Cleaning away P_SetAngle

See merge request KartKrew/Kart!606
2022-10-03 02:05:36 +00:00
AJ Martinez
224bd9baf3 Don't DEVELOP guard spbtest 2022-10-02 04:12:03 -07:00
AJ Martinez
47cdce239a Only register spbtest in DEVELOP 2022-10-01 22:26:17 -07:00
AJ Martinez
6a7c5050ad Restore SPB force-seek define as 'spbtest' cvar 2022-10-01 21:46:26 -07:00
Sally Coolatta
7b7cbbbf26 Fix oddities with duel items not always spawning 2022-10-01 22:58:58 -04:00
Sally Coolatta
bf6439731c Fix Duel Bomb tumble not scaling 2022-10-01 22:28:33 -04:00
Sally Coolatta
4404d0c098 Make hyu bob a static func 2022-10-01 22:23:52 -04:00
Sally Coolatta
d19924d96d Merge branch 'master' into duel-stuff 2022-10-01 21:46:02 -04:00
Sally Coolatta
ef9975709c Actually add proper item table 2022-10-01 21:36:17 -04:00
Sally Coolatta
4ee46c74d7 Basic start on Special Stages 2022-10-01 21:32:55 -04:00
James R
f891535065 Remove kartdebugcheckpoint, merge into debugwaypoints 2022-10-01 17:44:07 -07:00
James R
c935c42bd1 Rename "kart" prefixed cvars
kartspeed -> gamespeed
kartbumpers -> battlebumpers
kartfrantic -> franticitems
kartdisplayspeed -> speedometer
kartvoices -> tauntvoices
kartbot -> bots
kartdebugdistribution -> debugitemodds
kartdebughuddrop -> debugitemdrop

kartencore -> encore
kartvoterulechanges -> voterulechanges
kartgametypepreference -> gametypepreference
karteliminatelast -> eliminatelast
kartusepwrlv -> usepwrlv

kartdebugitem -> debugitem
kartdebugamount -> debugitemamount

kartdebugwaypoints -> debugwaypoints
kartdebugbotpredict -> debugbotpredict
kartdebugnodes -> debugnodes
kartdebugcolorize -> debugcolorize
kartdebugdirector -> debugdirector
2022-10-01 17:24:26 -07:00
James R
08f9628e6c Remove kartminimap, kartcheck, kartcomeback cvars 2022-10-01 17:04:48 -07:00
James R
925adee72f Rename "item" command to "give"
blame 05ee87ba5
2022-10-01 16:37:59 -07:00
James R
05ee87ba59 Rework and give item command
- "kartgiveitem" renamed to just "item"
- partial item name matches supported, e.g. type "item ring"
- item 0/none to remove your item
2022-10-01 16:20:17 -07:00
James R
8893666b53 Refactor XD_GIVEITEM into CHEAT_GIVEITEM 2022-10-01 16:16:22 -07:00
James R
2ba523e45c Remove unnecessary set old_angle after Hyudoro spawn 2022-10-01 15:01:47 -07:00
James R
05dd7d7871 Merge remote-tracking branch 'origin/master' into HEAD 2022-10-01 14:45:39 -07:00
Sal
1300ec5d56 Merge branch 'commit-version' into 'master'
Compare git commit before joining netgames

See merge request KartKrew/Kart!721
2022-10-01 02:54:58 +00:00
Sal
e9d2785cc3 Merge branch 'you-have-uncommitted-changes' into 'master'
The programmer took a nap. Hold out, programmer!

See merge request KartKrew/Kart!722
2022-10-01 02:14:15 +00:00
James R
1bfccebbe6 Merge remote-tracking branch 'origin/devmode-online' 2022-09-30 15:57:52 -07:00
James R
40b28d7d1a Merge branch 'rework-rteleport-command' into 'master'
relativeteleport cheat online

See merge request KartKrew/Kart!719
2022-09-30 22:52:23 +00:00
James R
f6b4b9213b Merge branch 'rework-savecheckpoint-command' into 'master'
savecheckpoint cheat online

See merge request KartKrew/Kart!718
2022-09-30 22:52:05 +00:00
James R
ee2302d6ee Merge branch 'noclip-online' into 'master'
Cheat/Debug Commands ...ONLINE

See merge request KartKrew/Kart!717
2022-09-30 22:51:42 +00:00
James R
bc0fc9b05a Readd version and subversion to serverinfo
Add commit field after those two so packet is identical up
to that point and DEVELOP builds mismatch version online.

blame d176aefd8
2022-09-30 05:51:43 -07:00