Commit graph

346 commits

Author SHA1 Message Date
toaster
ff05516901 Don't show Super Emerald related condition text if you haven't unlocked the second row of cups yet 2024-04-15 14:52:16 +01:00
toaster
9d5860d38d Also prevent Fury Bike chao key blastin (resolves #1275)
Fury Bike ID handled by #define now
2024-04-14 23:04:53 +00:00
toaster
c9651f92af Grab a certain prize from a random Prison Egg
Extra word added because the newline situation sucks
2024-04-14 23:38:28 +01:00
toaster
6df31e96f0 M_BuildConditionString: Fix invalid conjunction behaviour
- Nothing except DescriptionOverride will prevent an `- OR ` being inserted
- Question marks for further secret types won't prevent alternate conditions from showing up
2024-04-14 21:33:45 +01:00
toaster
39d701359a The "(Find other secrets to learn about this...)" text only happens if it's at the start of the challenge, otherwise it does "???" as before
Least need to go over and check every challenge description again
2024-04-14 21:16:32 +01:00
toaster
2caa5ff018 Dedicated server -spoilers startup parameter
Servers should get enough free for a healthy launch ecosystem, but not everything.
We'll give the relevant password out after, like, the first week probably? Please be patient, commit-diver
2024-04-12 14:17:33 +01:00
Oni
a7951fc41c Merge branch 'furybike' into 'master'
Fury Bike

See merge request KartKrew/Kart!2273
2024-04-12 03:41:24 +00:00
Oni
283f2188db Merge branch 'clear-data-fixes' into 'master'
Erase Data screen now has responsibilities more properly divided

Closes #1204 and #1155

See merge request KartKrew/Kart!2263
2024-04-12 03:40:14 +00:00
AJ Martinez
cb7a579b16 Fury Bike 2024-04-11 17:43:59 -07:00
toaster
a1ed3f8b23 "Clear GP and Record Data" has handed off some of its respnsibilities
- Map visitation flags (used for level select access) are now cleared by using "Clear Challenges Data" instead
    - Custom courses will still have their data completely wiped here because it's the case most likely to mean "I want to remove everything", and because I don't want to pick through all the possible places to nuke 'em
- Skin stats (and Eidolon's map stats) are now cleared by using "Clear Statistics Data" instead
2024-04-10 20:22:29 +01:00
toaster
0c782767be Add "then" condition string builder type
Better for some sentences
2024-04-10 17:24:45 +01:00
toaster
9383551cc3 Remove quotation marks from UC_UNLOCKABLE condition text 2024-04-10 17:20:45 +01:00
toaster
595c1ff9c8 BONUS ROUND --> GRAND PRIX
Also, slightly clearer phrasing for "Grab a certain prize"
2024-04-09 16:55:57 +01:00
toaster
4794440eea FinishTime, FinishTimeExact, FinishTimeLeft conditions: Guarantee all Prison Eggs are broken before awarding
Fixes how running out of time activated the Death Egg's Eye challenge
Done this way to avoid extensive last minute unlocks.pk3 update
2024-04-08 23:11:12 +01:00
toaster
5b466527e8 Merge branch 'throw-more-dots' into 'master'
Add a bunch more statistics

See merge request KartKrew/Kart!1973
2024-04-06 22:08:30 +00:00
Eidolon
23e4df3c90 Add per-map time stats and TA/SPB time stats 2024-04-06 11:25:31 -05:00
Eidolon
3ebe235154 Add total netgame time stat 2024-04-06 11:25:31 -05:00
Eidolon
0cd5a662ce Add statistic for time looking at statistics 2024-04-06 11:25:31 -05:00
Eidolon
19341b71a3 Add total menu time stat 2024-04-06 11:25:31 -05:00
Eidolon
a0d52ddacd Add per-gametype time stats 2024-04-06 11:25:31 -05:00
toaster
3e8bb45f2a Challenge Condition final hardcoded adjustments
- play 4 Prison Rounds --> clear 4 Prison Rounds
- draft -> tether
2024-04-05 20:27:57 +01:00
toaster
b35a05ad61 M_CountMedals: Don't count Platinums towards the overall counter, they're explicitly 101%
(This func isn't used by Challenges - M_GotEnoughMedals is, and that doesn't care about AUTOMEDAL_PLATINUM)
2024-04-05 00:38:58 +01:00
toaster
b8c67dcc9e Copyright update: Recieved notice of legal name change
(which is formal speak for I got back in contact with an old friend :D )
2024-04-03 20:44:19 +01:00
toaster
d7f4cd2d8f Copyright update for Viv Grannell specifically (the author of this commit) 2024-04-02 17:38:18 +01:00
James R.
96948258d2 Merge branch 'challenge-reskin' into 'master'
Halt skin-switching Challenge cheese (resolves #1231)

Closes #1231

See merge request KartKrew/Kart!2206
2024-04-02 00:39:23 +00:00
toaster
3d5c0182fe M_BuildConditionSetString: Show a more tantalising message for Challenges with forbidden descriptions
"(Find other secrets to learn about this...)" - this replaces "???"
2024-04-01 18:44:15 +01:00
toaster
b818a7d776 Forbid character-based unlocks if you switched your skin in a context where it didn't auto-spectate you (more robust stop for #1231) 2024-04-01 18:03:00 +01:00
AJ Martinez
9d304846d5 Allow UCRP_FINISHGRADE to fire when skipping tally 2024-03-31 15:35:21 -07:00
James R
acbb7eb463 Add password checking system
Co-authored-by: toaster <rollerorbital@gmail.com>
2024-03-28 00:09:11 -07:00
James R
11dc5b7318 Fix line endings 2024-03-28 00:09:02 -07:00
toaster
01cb8c0289 Seperate out Key Generation and Challenge Achievement sounds
Also removes unused sound effect defintion for sfx_endwrp
2024-03-26 22:27:07 +00:00
toaster
706781bf31 Formulate the bailout for UC_UNLOCKPERCENT to perfectly prevent any M_CheckNetUnlockID cases from being relevant 2024-03-21 00:02:12 +00:00
toaster
076a2e012e Adjust more condition strings for consistency referring to "the game"
- Reduces reliance on "Dr. Robotnik's Ring Racers" per Tyron feedback
- More descriptiveness for some overly short hints
2024-03-19 19:30:17 +00:00
toaster
ae3e151e65 Add UCRP_SURVIVE
Extremely simple condition - finish the level without NO CONTEST. Good for two specific Challenges that were trying to make do with "finish in good standing" as a substitute
2024-03-19 19:30:17 +00:00
toaster
76735183c6 m_cond.c: more consistent capitalisation in descriptions
- Cup -> CUP (prior art: ZONE)
- medals -> Medals
2024-03-19 19:30:16 +00:00
toaster
90ac08fb0a Don't force newline for OR in Challenge descriptions 2024-03-19 19:30:16 +00:00
toaster
78266e2dad Rename "Lost And Found" to "Lost & Found", as intended
We have the & symbol in the Cup font now, so doing it JUST before it's too late
2024-03-19 19:30:16 +00:00
toaster
d2ddeb65f2 M_UpdateNextPrisonEggPickup: Stop trying to be so pre-optimised and just do the job plainly
Should resolve the crash which for some reason doesn't have an issue to reference here

Also, for `debugprisoncd On`:
- Extensive debug logging
- Disable the "if all achieved, still force a pre-existing CD" behaviour
    - The list is empty if you've achieved every Prison CD and then restart the game, so it wasn't consistent at always making something. Without that kind of reliability I think it's more important for it to just be a fastforward
2024-03-18 14:11:33 +00:00
toaster
6e46f97847 As promised, Encore (alt)music
- `EncoreMusic` on mapheader
    - Supports up to 3 alt musics, as with every other type
- Do not vape/nightcoreify if provided
- To avoid complicating the Alt Music logic too much, uses "side B" of the same Prison Egg CD
    - That is to say, if there are 2 encore tracks and 3 normal tracks, the second Encore track will only play if you've gotten the CD associated with the second normal track

I haven't actually tested it *with* any Encore music, but I've triplechecked literally everywhere to make sure it didn't break standard play
2024-03-10 21:18:15 +00:00
Oni
6bfa697d7d Merge branch 'cd-extra-vfx' into 'master'
Extra effects for Prison Egg CD

See merge request KartKrew/Kart!2017
2024-03-06 01:53:49 +00:00
toaster
7f0df71558 R_SkinAvailableEX
- Most R_SkinAvailable calls should be returning index into demo.skinlist (same numerical value as when demo was recorded), for demo sync
- A handful of general things permit exception for this
- Expose `replaynumskins` (calculated as `(demo.playback ? demo.numskins : numskins)`) to Lua
    - There's *always* more that can be done for this, but this is the minimum spec that can at least be somewhat stable
2024-03-05 13:21:38 -08:00
James R
f60309983a Add debugprisoncd cheat (DEVELOP only)
- Always drops a CD from Prison Eggs
2024-03-05 03:24:15 -08:00
James R
5fbb32442b Fix Alternate Title Screen unlockable not saving preference
- Remove CV_NOSHOWHELP, so the config file can load
- Do not stealth set the cvar, so it is not dependent on
  order of operations of config loading and challenge
  loading
2024-03-03 22:20:12 -08:00
toaster
e8523b69f0 Sealed Star re-ordering (resolves #606)
- If emerald not yet collected on that cup, pick the first uncollected emerald, then get the cup's CUPCACHE_SPECIAL with that ID to pick the stage
- Already collected emeralds retain their swappage across gamedata saves
- Returns to normal order if you get all 7 OR Special Mode is unlocked (chao key? debug? password in modded games? sky's the limit)
- Pops up a Message from the Stars telling you the gems have been returned to their natural place
- Add-ons will always use their dedicated sealed star, since it's unordered material

If it weren't so last minute I could have a better solution for GP Backups, but right now what I've gone for is it always trusts whatever G_GPCupIntoRoundQueue does AS LONG AS THE COURSE ISN'T THE ONE YOU'RE RELOADING INTO. If it IS, then it checks to see if it's exactly what's been saved, and complains (with the generic error message, unfortunately) if it isn't.
2024-03-03 00:24:31 +00:00
Eidolon
20cb01fb94 (demo v9) Demo save unlocks and mapmusrng
Fixes KartKrew/Kart#1093
2024-03-01 17:27:41 -06:00
James R
96543a537a Unlocks: add IsGear condition, restrict IsDifficulty to GP
- IsDifficulty is a GP difficulty requirement
- IsGear is a gear game speed requirement
2024-02-27 06:19:47 -08:00
toaster
7e217b74f5 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into separate-spb-attack-records
# Conflicts:
#	src/g_game.c
2024-02-23 00:57:40 +00:00
James R
cc240600e9 M_CheckCondition: fix UCRP_PODIUMCUP GP grade
- PodiumCup grade condition was completely broken and
  checked against the cup ID instead of the grade letter
2024-02-17 16:39:07 -08:00
James R
05d8d83dcc Refactor recorddata_t and separate into recordtimes_t 2024-01-27 04:13:01 -08:00
Oni
df5c866573 Merge branch 'map-access-flingerdinger' into 'master'
Stronger Course progression restriction

Closes #832, #859, and #839

See merge request KartKrew/Kart!1795
2024-01-09 08:11:12 +00:00