Commit graph

23701 commits

Author SHA1 Message Date
James R
58cccedd64 MT_FLOATINGITEM: use K_UpdateMobjItemOverlay 2023-06-27 01:12:01 -07:00
James R
bef55b818b Add power-up constants 2023-06-27 01:12:01 -07:00
James R
b9820e3264 Whip Super Flicky 2023-06-27 01:12:01 -07:00
James R
ed262f780b Add majority of Super Flicky object functionality
Thinkers and most collision.

- 4 Super Flickys deploy from above the owner player, in
  a radius.
- Radius shrinks as Flickys descend.
- Flickys orbit their owner until coming within range of
  another player.
- The entire group of Flickys attack another player at
  once, with some delay between each.
- Flickys accelerate toward their target, constantly
  building speed.
- When a Flicky is both within a short radius of its
  target and the angle of momentum is narrowed toward the
  target, the Flicky will sharply accelerate to impale the
  target.
- When a Flicky is both outside of a long radius of its
  target and the angle of momentum is facing away from the
  target, the Flicky's momentum will be drastically cut in
  order to make it easier for the Flicky to turn around.
- After one of the Flickys in the group hits its target,
  all but one of the group is free to hunt a different
  target.
- A new target is chosen from a radius around the current
  target.
- Flickys can only target players who are not respawning
  and who have not already been attacked by another
  Flicky.
- Super Flickys can be blocked by a Guard. The Super
  Flicky shall have all its momentum reflected (strong
  knockback).
- Super Flickys can be insta-whipped. This shall have the
  same effect as a Guard, with the additional effect of
  knocking the 'Super' out of the Super Flicky.
- Non-Super Flickys are knocked back with gravity. After
  bouncing off the ground once, it regains flight and will
  continue to chase its target. However, it cannot damage
  the target. After 5 seconds, the Flicky regains Super
  state.
- The Flicky power-up is on a timer. After the timer
  expires, Flickys lose Super state and ascend back into
  the air (reverse of their initial descent).
- If the Super Flicky is not orbiting its target when it
  ascends, it retains all horizontal momentum during the
  ascent, 'flying off into the distance'.
2023-06-27 00:53:24 -07:00
James R
d737387132 Add flickyAttacker and powerupvars_t to player_t, add to netsave 2023-06-27 00:50:40 -07:00
James R
b35d0ae25e Add Super Flicky sounds
fbost1, fbird, fhurt1, fhurt2 were previously freeslotted
by chars.pk3. They are used by the Flicky skin.
2023-06-27 00:50:00 -07:00
James R
fd0167a3b0 Add Super Flicky states
Adds 3DFR sprite (previously freeslotted by followers.pk3)
2023-06-27 00:49:59 -07:00
AJ Martinez
c71bb7092e Merge remote-tracking branch 'origin/master' into ringbox 2023-06-26 19:19:21 -07:00
AJ Martinez
c495106ee5 Ringbox: playtest fixups 2023-06-26 19:02:39 -07:00
AJ Martinez
a43744aa24 1P hud fixes 2023-06-26 17:51:42 -07:00
AJ Martinez
0a6bac0dcc Ringbox: HUD, transform time define, ring-box-only, scaling rewards 2023-06-26 17:36:41 -07:00
toaster
5fedd38965 Fix condition for G_GetBackupCupData focus to not include Match Race 2023-06-27 00:16:09 +01:00
toaster
34987fbffc FIXED IT
- SendNameAndColor was completely out of order for some reason
- SendNameAndColor was sending cvar value instead of the send value. The value for sending. The value chosen specifically for sending, the send value.
- Color_OnChange was just broken in the SKINCOLOR_NONE case
2023-06-27 00:07:40 +01:00
toaster
5036719280 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into seeecret-colors
# Conflicts:
#	src/k_menudraw.c
2023-06-26 23:25:47 +01:00
toaster
c9817b957a New unlockable type for watching the Credits from start to finish
Also makes gamedata save/load a little more forward compatible longterm by making a UINT32 bitfield for various once-event flags, with increased minor version
2023-06-26 22:32:47 +01:00
toaster
defd885092 GP Backup tidy (connected to ending gamestate)
- Handle removing GP Backups when any game end sequence is started, not just the Podium (in case no Podium exists)
- Guarantee removal in M_StartCup out-of-entries failure state
2023-06-26 20:54:43 +01:00
toaster
d17399bcce Revert "Quicker, almost instantaneous Sealed Star conclusion after death"
This reverts commit 32eead29e5.
2023-06-26 20:23:29 +01:00
toaster
35df66f2b1 Play music for normal Evaluations too
Lumpname _DRIFT, implement later
2023-06-26 15:34:48 +01:00
AJ Martinez
45547607bd Ringbox: item respawn refactor + box visuals 2023-06-26 06:36:37 -07:00
toaster
32eead29e5 Quicker, almost instantaneous Sealed Star conclusion after death
Also gets rid of the "wuu wuu wuu" sound from Competition that plays in this instance
2023-06-26 14:23:38 +01:00
toaster
15d744c4e3 M_CheckCupEmeralds: Only count the first instance of each Emerald in the cups
This prevents custom cups from being counted as completing primary Sealed Star progression unless you wipe existing ones.
2023-06-26 13:33:28 +01:00
toaster
8cd3305a34 Cleaner Super Emerald drawing 2023-06-26 12:56:01 +01:00
AJ Martinez
f371a21258 Ringbox proto functionality 2023-06-25 23:18:06 -07:00
Oni
788b673584 Merge branch 'live-event-backup' into 'master'
GP Crash Backup

See merge request KartKrew/Kart!1296
2023-06-26 03:46:35 +00:00
toaster
1b03e7a75c Evaluation changes
- Add music to Perfect evaluation
    - Thank you darling Tyron 😭
- Different evaluation durations
    - 18 seconds for Perfect evaluation
        - Extended because the music is too good
    - 14 seconds for all other evaluation types
        - Extended so it's not almost half the length of the perfect one
        - Timed so the Seal can glow 5 times (instead of 3)
2023-06-25 23:49:21 +01:00
toaster
9e816216a5 In DEVELOP builds, you can force a particular evaluation by setting cv_soundtest to the numerical equivalent of the evaluationtype_t you're looking for
Replaces the previously uncommited recompilation-based hacks the author of this commit was using to test the previous ones on this branch
- 1 is Nothing
- 2 is Chaos Emerald
- 3 is Super Emerald
- 4 is Perfect
- 5, 6, 7, etc currently repeat
2023-06-25 23:49:21 +01:00
toaster
4e81f341f7 Perfect evaluation 2023-06-25 23:49:20 +01:00
toaster
45f8f1c89f Remove a bunch of unused emerald stuff inherited from SRB2
All superseded by M_CheckCupEmeralds + GTR_POWERSTONES stuff
2023-06-25 23:49:20 +01:00
toaster
060c03f011 Ring Racers-specific Evaluation
- Four evaluation modes.
    - Perfect
        - Currently no visual implementation
    - All others have a cool set of visuals
        - Multi-stage animation of a glowing threat and a Star that's Sealed
        - If they're relevant, show the gems you HAVEN'T grabbed
        - Three modes here
            - No gems
                - For Easy mode, asks you to brave a higher difficulty
            - Chaos Emeralds
                - Not all 7 chaos emeralds? Push your rank harder!
            - Super Emeralds
                - Not all 7 super emeralds? Further challenge awaits!
- `useBlackRock` to make evaluation context less specific for custom material is replaced with `useSeal` option
- M_CheckCupEmeralds(difficulty)
    - Returns the Emeralds you have for that difficulty
    - Obviously returns 0 for Easy
    - Makes the method of checking collected Emeralds for cup contexts significantly easier
2023-06-25 23:49:20 +01:00
toaster
f15a7a946d Remove GS_ENDING
A whole bunch of extremely specific SRB2 material
2023-06-25 23:49:20 +01:00
toaster
0ecc7ccd54 Make credits accessible from the menu again 2023-06-25 23:49:19 +01:00
toaster
c89048def7 Game End cleanup
- Remove specific gamestate, drawer, etc
- Just add an extra fade straight into G_EndGame
2023-06-25 23:49:19 +01:00
toaster
43044ec032 PlayCredits for Cups
Hilariously broken due to the evaulation gamestate, but the first piece of the puzzle: gets the player into the Credits gamestate after the conclusion of a Podium, if the GP context's cup has this boolean set.
2023-06-25 23:49:19 +01:00
toaster
8d3e828663 AltPodium for cups
We're unlikely to utilise this, but permits creators of custom user-created cups to flex their own style without fighting to replace the default Podium.
2023-06-25 23:49:18 +01:00
toaster
8689e0735e readcupheader: Permit emptying out BonusGame and SpecialStage for an existing cup
Provide a single / and it'll be empty
2023-06-25 23:49:18 +01:00
toaster
2c09f39796 K_drawKartHUD: Draw laps if there's 0 laps, because that's more likely to be a testing environment 2023-06-25 23:49:18 +01:00
toaster
08b471c9b2 Vaguely related request: Increase radius + height for MT_EMERALD by 8FU 2023-06-25 23:49:18 +01:00
toaster
ed8158c00c P_SetupSignExit: Bail early if gametype has GTR_SPECIALSTART 2023-06-25 23:49:18 +01:00
toaster
e507a8b0ad P_EndingMusic: Play "EMRLD" in Emerald contexts
- gametype has GTR_POWERSTONES and any one player has all 7 emeralds
- gametyperules & GTR_SPECIALSTART and any one player isn't losing
- GP after completing a GPEVENT_SPECIAL and any one player isn't losing
    - Catches custom gametypes in place of Sealed Star at the end of a GP
2023-06-25 23:49:18 +01:00
toaster
78404af6fe Arrows for cupgrid page indication
My biggest bugbear for a while and we are literally almost out of time, can polish gfx later
2023-06-25 23:44:39 +01:00
toaster
a016a54e52 Rework how GP Backups are accessed
- Now actually from the relevant GP difficulty's Cupgrid, instead of the top-level Play choice
    - Permits a much cleaner M_StartCup, combining two of the previously four copypasted, slightly modified level startup regions (which could be further combined for sanity's sake, but would take a LITTLE more work right now than I have in me)
- Shows a funny exclamation mark from Sonic Rush on the relevant cup on the grid
- Selected by default when loading the menu, if appropriate
2023-06-25 23:44:39 +01:00
toaster
e9df563826 Rearrange contents of GP Backups for future purposes
Also increments minor version for backups
2023-06-25 23:44:39 +01:00
toaster
b1b23da51b Prevent the other half of tape's exploit
Save one less life than you actually have, so you're discouraged from constantly reloading from backup.
2023-06-25 23:44:39 +01:00
toaster
87c26f0fe9 Skip Bonus Rounds when loading up Live Event Backups
Prevents the exploit Tape discussed from being used for Battle.
Also attempts to recover to Podium if relevant.
2023-06-25 23:44:39 +01:00
toaster
3474fd6e83 Grand Prix Backup: Store lumpnamehashes of all maps in queue for extra confirmation that the cup's contents are the same between gameboots. 2023-06-25 23:44:39 +01:00
toaster
8199437e0d Coming back to the branch, closing menu messages felt annoyingly unresponsive. Let's disable the flashing animation for now and just retain the slideaway. 2023-06-25 23:44:39 +01:00
toaster
d6a3e1446f Improve handling of M_StartMessage strings
The author of this commit ran into an issue while testing previous changes where a Menu Message had MM_NOTHING but a Yes and No string, leading to misleading appearances. This prevents that footgun from happening again.
2023-06-25 23:44:38 +01:00
toaster
3e6a5fda21 Change the rules of when GP Backup occours/is deleted
- Re-saved every time you lose a life, to prevent scumming
- Force-deletion of your backup has changed
    - Don't when saying NO to the GP Backup load prompt
    - Don't when returning to titlescreen under non-DEVELOP
    - DO when starting a new Grand Prix session of any cup
2023-06-25 23:44:38 +01:00
toaster
6b1fadd9d2 Make the Server Connection Ticker use the MenuCMD system
- Permits the use of the existing K_HandleMenuMessage MM_YESNO system, instead of the faked previous implementation
    - Removes the "cl_requestmode" hack
    - The only area of the game that fakes handling Menu Messages is the title screen, now, due to the lack of guarantees for menu inputs.
- *Also* permits Screenshots and video/lossless Recordings to be started/ended on this menu.
2023-06-25 23:44:38 +01:00
toaster
3391b0e9a5 Flash button prompt before closing Menu Message, for improved conveyance
Needs a sound, we can do that later
2023-06-25 23:44:38 +01:00