Commit graph

246 commits

Author SHA1 Message Date
Freaky Mutant Man
37e8b02e0e Add ability to disable "communications in progress" graphic by adding "NoComms = True" to map SOC 2025-09-15 20:39:11 -05:00
toaster
c3131f697e Tutorial Recommendation hints for GP cup select
One new parameter on cupheader_t that can only be set in mainwads
If specified hint condition has been achieved, identifies from the actual unlock condition what Tutorial it should surface in a popup.
Funny question mark
2025-08-27 23:33:11 +01:00
Lach
bbe231e994 Add Ancient Gear object type & unlock type 2025-08-10 01:51:34 +10: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
SteelT
b98b4dda5f Add CameraHeight level header option for forcing the player's camera to be at a certain height.
CamHeight can also be used as a shorter alternative to it.
2025-05-17 22:30:33 -04:00
Eidolon
cb7f437e60 Merge public master 2025-02-13 15:48:11 -06:00
Eidolon
a4d304a1f5 Update copyright years to 2025 2025-02-13 15:32:26 -06:00
Eidolon
1a8467fdaf Merge public master 2025-02-12 19:02:38 -06:00
Sal
7a52877ab9 Merge branch 'update-actions' into 'master'
Minor action special / ACS built-in fixes

See merge request KartKrew/RingRacers!58
2024-10-21 23:55:24 +00:00
Sally Coolatta
a7aaf0eddb Level_SetWeather: Use str instead of int 2024-09-21 03:54:54 -04:00
Sal
653766010d FRIENDCODE (aka, Teamplay) 2024-09-17 01:41:26 +00:00
toaster
3ca282c3b4 COM_Exec_f: By default, insert into command buffer
- Resolves KartKrew/RingRacers#281 under standard operation
- Add `-immediate` parameter for previous, `wait`-ignoring behaviour
    - Used by configfile, EXECCFG
2024-09-15 18:19:36 +01:00
toaster
02043af2f7 Do not corrupt spraycan cache when freeslotting custom skincolours
My mistake gomen
2024-08-24 15:22:19 +01:00
Ashnal
009034e848 Default anim time from 6 to 10 2024-05-05 01:20:08 -07:00
Sally Coolatta
b610353699 Add follower ring animation
Add "RingState" and "RingTime" to followers. RingState is the state to use while they're giving you an auto-ring. The animation plays for RingTime tics per-ring, so it can extend to however long they need to use rings.
2024-05-05 01:18:25 -07: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
17801d5275 Emeraldnum and playcredits can only be set when initialising a new gamedata 2024-04-11 22:41:04 +01:00
toaster
0c782767be Add "then" condition string builder type
Better for some sentences
2024-04-10 17:24:45 +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
7f6de407f1 Copyright update: Add Kart Krew (2024) in general for high-traffic inherited sourcefiles 2024-04-02 17:42:38 +01:00
Gunla
20d6dcda88 Merge branch 'discord-rp-update' into 'master'
Update Discord Rich Presence for Ring Racers

See merge request KartKrew/Kart!2155
2024-03-29 20:30:20 +00: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
AJ Martinez
bca0b48f45 Merge branch 'challenge-final' into 'master'
Challenge Final

See merge request KartKrew/Kart!2140
2024-03-24 06:47:32 +00:00
toaster
93b08c8512 Dehardcode "titlemusicstart" (position in O__TITLE the titlescreen starts on) 2024-03-23 16:21:03 -07:00
Sally Coolatta
d41ca3711a Update Discord RP for Ring Racers 2024-03-23 01:31:51 -04:00
Sally Coolatta
af6340741e Add speed to gametype
Set a specific gamespeed per gametype. KARTSPEED_AUTO for it to be decided by game settings.

Wanted this for a while, but also it makes game speed display logic for DRP very straightforward.
2024-03-22 16:58:36 -04: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
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
toaster
7db5094577 Alt music: Don't destroy cache_muslock data when replacing the music in the mapheader 2024-03-10 21:17:20 +00:00
James R
9f982a574e Add LapsPerSection property to map headers, fixes finish line distance in hybrid section-circuit maps
- It is possible to have a circuit map separated into
  sections, where there are multiple "laps" before making
  a full loop
- Normally the lap count is used to multiply the finish
  line distance, but it fails for these maps
- The LapsPerSection property fixes the calculation by
  specifying how many laps make up a full loop
  - Default = 1 lap (most maps)
2024-03-03 03:06:52 -08: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
James R
e67f7bf59d Unlocks: require parameter for IsDifficulty condition 2024-02-27 06:15:24 -08:00
Sal
3958c15dfe New Credits 2024-01-28 23:31:30 +00:00
James R
db4e2e692b Add LobbySize option to level headers, controls whether the map appears in vote, based on player count
- Prevents a map from appearing on the vote screen if
  there are too many players
- LobbySize
  - Duel - 2 players max
  - Small - 5 players max
  - Medium - 10 players max
  - Large - 16 players max (default if not set)
- Future proofing
  - Doesn't count bot players in gametypes that don't
    support bots
2024-01-13 22:56:17 -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
toaster
83366b6507 More universal Course restriction based on progression
All courses are restricted in Match Race/Time Attack/Online if not visited in GP UNLESS:
- It is the first Race Course of a Cup
- Course has "NoVisitNeeded = True`
    - The Controls Tutorial and Test Run are the only two stages that will need this

The above replaces:
- A lot of restricted courses having to be marked with `FinishNeeded = True`
    - Hidden Palace
    - Sealed Stars 1-14
        - Once Special Mode is unlocked, it will now be possible to practice Sealed Stars before rematching them in GP
- Almost all Tutorial-specific behaviour, since it was heinously hacky

HOWEVER, `FinishNeeded = True` was left in specifically for future releases, and I reserve the right to use it on Adventure Example again before launch.
2024-01-07 13:57:05 +00:00
Eidolon
7521e42e62 Add automedal time configs and calculation 2024-01-03 12:24:33 -06:00
toaster
80e519e442 mapheader_t destroyforchallenge: Actually read supplied mobjtypes past the first one
Fixes Joypolis chairs not being counted
2023-12-27 15:28:34 +00:00
toaster
d3af5db874 readcondition: Fix AllChaos/AllSuper/AllEmeralds difficulty restriction 2023-12-23 21:38:23 +00:00
toaster
a4c91f66ec Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into tutorial-pass 2023-12-17 12:09:06 +00:00
toaster
436ba88220 readskincolor: sizeof is compile-time evaluated, literally why do we need to run the allocator for this 2023-12-16 22:00:58 +00:00
Eidolon
88ee385ee3 Enforce C11 standard compliance, -Werror=vla 2023-12-14 21:53:18 -06: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
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
e060e9dadc More consistent handling of special event round icons
- Gametypes have "GPpic" and "GPpicMini" parameters
- These are shown in contexts where a Round Number would be shown in GP, but an eventmode is under way.
- Instead of having different rules to show up on the pause menu, titlecard, and tally/intermission...
    - Pause Menu Roundqueue, Tally, and Intermission have all been aligned to the same rules.
    - As long as the titlecard is standard, it will show the GP Pic per those rules. (GTR_SPECIALSTART and GTR_BOSS still have their unique behaviour here)
2023-10-25 20:34:40 +01:00
toaster
e98a24363d IsDifficulty: Fix setting Hard/Master 2023-10-21 11:27:31 +01:00
toaster
82afb5da5a Self-review: Grade S is not an available rank for the Tally 2023-10-20 16:14:58 +01:00
toaster
dc72602b00 UnlockPercent: Add fudge value
If you're hypothetically gating a Character behind 100% of Characters unlocked... that'll never come true!
To that end, allow a fudge value to be specified.
It's added to the unlock count before comparing it against the percentage.
2023-10-20 14:27:19 +01:00