Commit graph

199 commits

Author SHA1 Message Date
Lach
bbe231e994 Add Ancient Gear object type & unlock type 2025-08-10 01:51:34 +10:00
toaster
43fef1a59b Replace the Playground Hack with a specific fix via a case that needed its own function 2025-07-24 19:40:51 +01:00
toaster
295e8dd0ce Add Goner Choice
- Selection between Tails' Way (existing Tutorial) and Eggman's Way (Playground)
    - Semi-passable UI
    - Characterful descriptions
- Add "PlaygroundRoute" condition to Challenges
    - Fires if you select Eggman's Way
- 0 Chao Keys unless you go back to Goner for the outro (which Playground skips)
2025-07-23 19:25:52 +01:00
Eidolon
a4d304a1f5 Update copyright years to 2025 2025-02-13 15:32:26 -06:00
toaster
4c03cd306e Give Prison Egg CDs more frequently (every 15, rather than every 30)
Sets a cap to the value loaded from gamedata, too
2024-05-01 00:48:01 +01:00
Sal
23bcddca7f Merge branch 'more-keys' into 'master'
Make chao keys easier

See merge request KartKrew/Kart!2310
2024-04-26 20:16:05 +00:00
Sally Coolatta
fd40561c7d Make chao keys easier 2024-04-26 15:26:10 -04:00
Sally Coolatta
2c5caf582b "TutorialDone" unlockable condition
Replace all instances of `MapBeaten RR_SunbeamParadiseSprings` with `TutorialDone`, for the new early exits to work.
2024-04-25 15:18:47 -04: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
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
toaster
0c782767be Add "then" condition string builder type
Better for some sentences
2024-04-10 17:24:45 +01:00
toaster
d0724c263a Bring roundsplayed_t into the highest common denominator header
No indirect, hard-to-maintain magic number range in modetimeplayed arrays
2024-04-06 21:01:56 +01: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
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
dea698a276 Tasteless Taunts
Uninhibited voices/horns (see the "meme" setting in v1).
Removes the SECRET_MEMETAUNTS unlock, which didn't fit the general level of cohesion main game content should have.
2024-04-02 23:26:57 +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
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
6f67984e27 Add "Track 10" to the Message from the Stars
Stays with you after you leave the Challenges screen.

Also remove the duplicate-effort attempt-to-pre-optimise considersealedswapalert that only considered SECRET_SPECIALATTACK - it should also report here under other unlockable progressions, if relevant.
2024-03-26 21:41:55 +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
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
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
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
e9b7ed8101 Intentfully permit gaps between Emblem IDs
Introduces ET_NONE, to match SECRET_NONE for Challenges
2024-01-05 20:50:54 +00:00
toaster
2c8e342d4b Double MAXEMBLEMS one more time, per Eidolon's recommendation
4096 is probably forward-thinking enough
2024-01-05 12:48:08 +00:00
toaster
6feb8370f6 AUTOMEDAL_MAX for range checks
Comments have also been updated to acknowledge the AUTOMEDAL_ constants
2024-01-05 12:03:18 +00:00
Eidolon
7521e42e62 Add automedal time configs and calculation 2024-01-03 12:24:33 -06:00
VelocitOni
0cd00a58ea Easier Chao Key generation
Reduced the amount of rounds required for a free Chao Key to 14 from 32 (2 cups or so now).
2023-12-24 12:38:51 -05:00
toaster
11fcb0b9ae Goner Setup: Cook 3 - Add "Outro"
One last guaranteed visit to the setup, to get a sendoff before the game truly begins.
(The "survey program" joke is now themed softlock prevention.)
2023-12-07 23:36:02 +00:00
toaster
e91115a8fa Goner Setup: Cook 2
- More dialogue
- Restrict access to your choices based on your progress through the Goner Setup.
- Save progress through the setup to gamedata
    - Resets to beginning when Challenges is cleared
- Passwords
    - Only permit the password entry in like the first two seconds
        - Preemptively disarms potentially annoying people in stream chats
    - Make wrongwarp also quit the game on exit instead of returning to the title screen
    - Add GDQ cheats
        - `savetheanimals`
        - `savetheframes`
        - Both do practically the same thing, with slightly modified dialogue.
            - Skips all of the normal dialogue.
            - Performing a social experiment on anyone who might stream this game at a charity event. :)
2023-12-03 22:34:06 +00:00
toaster
fcb696d1ad First pass at the "Game Truly Starting" apparatus
- Unlock Ring Cup to get the real Title Screen, demos and all.
- Allows M_InterruptMenuWithChallenges.
2023-11-27 23:52:14 +00:00
toaster
9989543346 UC_ALLCUPRECORDS
New condition for tracking multiple cups' windata.
`Condition1 = AllCupRecords RR_Egg Bronze`
- All cups up to Egg Cup must be completed at Bronze or better
`Condition1 = AllCupRecords`
- All cups in the game must be completed
`Condition1 = AllCupRecords All Any Master`
- All cups in the game must be completed on Master mode`
2023-11-22 00:34:39 +00:00
toaster
382119b8fb Second row of cups is invisible if none of them are unlocked
- Controlled by M_CupSecondRowLocked
    - Looks for any Cup with associated unlockable that's on the second row
    - Cached on load for both relevant menus - Cupgrid and Challenges
- Custom cups will be stretched out onto more pages
    - Side incentive of unlocking more material: Less annoying interactions with custom material
- Pages with nothing unlocked are completely skipped over

Also moves a bunch of minor things which previously used magic numbers to the CUPMENU_COLUMNS/CUPMENU_ROWS defines, for sanity
2023-11-20 21:09:33 +00:00
toaster
ce085c3f66 failedtutorialchallenge -> enteredtutorialchallenge
Track ENTERING the challenge, instead of when you fail it
Allows for system-level ironclad prevention against multiple tutorial challenge runs on the same gamedata
2023-11-17 16:54:33 +00:00
toaster
e2a3acc99d Track failing the Tutorial Challenge
I do NOT want to touch ACS today, but all the important pieces are now there for this feature
2023-11-16 23:09:41 +00:00
toaster
0762b93ef2 Tutorial skipping challenge - first pass
- Go to a MainCfg-specified map on its guessed gametype
    - `TutorialChallengeMap = RR_ZonedCity`
- Some unique settings
    - K_CanChangeRules() == false
    - If GTR_CIRCUIT, make it Hard Speed
    - If GTR_BUMPERS, die in one hit
    - If GTR_BOTS, make them all difficulty 13 of the default bot skin
    - No Medals or Spray Cans during the Tutorial Challenge
- Complete the stage in 1st place or don't bother at all
- Has the "Give up" menu option available, but no "Try Again"
- Condition for successfully completing the Tutorial Skip
    - `Condition1 = TutorialSkip`

Related bugfixes:
- Correctly wipe skipstats when returning to the Title/menus
- Typing of `ultimatemode` (hey this isn't accessible by anything right now I wonder)
2023-11-16 21:44:52 +00:00
toaster
a1f93b4c60 UCRP_FINISHGRADE A
"get grade A or better"
Not for Podium, use PodiumCup instead for that
2023-10-20 13:03:45 +01:00
toaster
d8e6e1d1a4 UC_TOTALTUMBLETIME
`Condition1 = TotalTumbleTime 30*TICRATE
"tumble through the air for 30:00"

Also makes all the time-based non-playing Conditions use get_number so TICRATE can be provided
2023-10-19 20:22:17 +01:00
toaster
42233cfb9e UCRP_GROWCONSECUTIVEBEAMS
- Condition1 = GrowConsecutiveBeams 4
- "touch the blue beams from your own Shrink at least 4 times before returning to normal size
2023-10-19 19:44:37 +01:00
toaster
6211c0b222 UCRP_GIANTRACERSHRUNKENORBI
"hit a giant racer with a shrunken Orbinaut"
Does what it says on the tin
2023-10-19 18:43:40 +01:00
toaster
d2d7830afc UCRP_HASFOLLOWER
Self-explanatory.
- `Condition1 = HasFollower Buzz_Bomber`
    - "with Buzz Bomber in tow"
    - Combine with Podium checks or other completion-based challenges.
2023-10-19 18:06:27 +01:00
toaster
de79dfe983 UCRP_MAPDESTROYOBJECTS
You have to destroy all objects of a certain list of types.
UNLIKE OTHER CHALLENGES, this is dependent on a mapheader parameter!!
The author of this commit just didn't want to create too laggy a condition check.
- `Condition1 = MapDestroyObjects RR_ESPRESSOLANE tables & chairs
- Map RR_ESPRESSOLANE
    - DestroyObjectsForChallenges = MT_ESPTABLE,MT_ESPCHAIR
2023-10-19 17:28:55 +01:00
toaster
a6ef8d357c UCRP_DRAFTDURATION
"consistently draft off other racers for [parameter] seconds"
Actually counts leniency tics too, but if the leniency hits 0 it gets reset.
2023-10-18 02:32:46 +01:00
toaster
83acdaa0cf UCRP_HITDRAFTERLOOKBACK
"hit a racer drafting off you while looking back at them"
Self-explanatory set of conditions
Wrote a commented out more compicated check for valid angles between player and target, but lastdraft probably is good enough for these purpses
2023-10-18 02:05:12 +01:00
toaster
a7940684f6 UCRP_WHIPHYUU
Insta-Whip another racer while you yourself are invisible from Hyuudoro, it's shrimple
Also updates the phrasing used for UCRP_TRIPWIREHYUU to match ("afflicted by Hyudoro")
2023-10-18 01:18:34 +01:00