Commit graph

178 commits

Author SHA1 Message Date
James R
b73bbd3712 Add invulnhitlag, timeshit and timeshitprev fields to player_t 2022-12-21 08:08:59 -08:00
VelocitOni
8cd36dbf03 Merge branch 'master' into unlockables-undefeatable 2022-12-18 01:59:04 -05:00
Sally Coolatta
a481e4b34b Deterministic roulette
The roulette contains NO (non-seeded) RNG anymore. You manually stop it at any time.

Still needs the visual of the items scrolling, to make it not blind.
2022-12-11 23:58:11 -05:00
toaster
6d0637d39d Unlockable skins (in a way friendly to #define MAXSKINS 255)
Mammoth commit, sorry. I only realised halfway through writing it that SECRET_SKIN was only partially merged.

Ports from 2.2:
- Merge SECRET_SKIN (STJr/SRB2!1474)
    - Default skin is now handled by checking all skins for unlock status, and I_Erroring if none are available
    - Don't show skin names on game startup, to keep our secrets hidden
    - Unlockables now have string variables zallocated.
         - For skin names rather than numbers.
    - Correctly clean up memory when freeing unlockables and emblems.

Bespoke code:
- For temporary testing. `unlocks.pk3`
    - Using this for rapid testing gameboot SOC instead of patch.pk3 because of the intent to turn that into scripts.pk3
- Don't not save gamedata in DEVELOP builds, even if you've used cheats!
- `player->availabilities` is now an array of UINT8
    - (MAXSKINS + 7)/8 entries, or 32 bytes.
    - Included with XD_ADDPLAYER instead of XD_NAMEANDCOLOR.
         - Simplifies a lot of logic with respect to demos, skin changes mid-game, etc.
             - Seriously, there's a lot of random places in the code that just iterate over MAXSPLITSCREENPLAYERS and g_localplayers to update availabilities in real time in a way that's not particularly netsafe...
         - Lines up with the plan for handling unlocks when returning to menus.
         - Was included with XD_ADDBOT, but that actually overruns the netxcmd buffer at first mapload with 7 bots. We might need to consider expanding the size of the netxcmd buffer...
    - In demos, can be interpreted as both relative to the original replay and the current skin list depending on boolean context provided to R_SkinUsable.
    - Used for SF_IRONMAN (and will crash if all other skins are inaccessible).
- Grand Prix bot randomisation uses the host's unlocks.
- Don't show locked characters on the fancy new character select.
-  DXD_JOINDATA for demos
    - Replaces the dual-purpose behaviour of DXD_PLAYSTATE
    - Contains availabilities
    - Handles bot material in a different way
- Forceskin restrictions
    - Won't run in demos, because it's assumed recorded DXD_SKIN will handle all the conversions the original match had
    - Won't run if K_CanChangeRules says no
- Correctly set `mapvisited` on level visit, even in [fake gasp] MULTIPLAYER/NETGAMES!! 🥹
- Added updating unlockables and extra emblems on `mapvisited` update.
    - Currently fails to produce the cecho, but that'll be stripped out entirely in a future commit so I'm not bothered.
2022-11-27 22:53:29 +00:00
AJ Martinez
86366b000c HOSTCODE 'ironman' - WIP 2022-11-03 03:38:54 -07:00
Sally Coolatta
841bcf3619 Allow non-players to water skip/run
Water skipping is enabled for Orbinaut, Jawz, and Ballhog currently. Jawz can water run, as long as their target is on/above the plane they're at -- once their target goes into the water, they'll start skipping.
2022-09-27 12:31:33 -04:00
AJ Martinez
e10d6124d6 Merge remote-tracking branch 'origin/master' into new-spb 2022-09-23 22:20:24 -07:00
Sally Coolatta
362bef7b3a Add new gate sounds 2022-09-23 17:19:15 -04:00
James R
7251ed5d9e Add player.oldcmd -- ticcmd from previous tic 2022-09-22 08:43:40 -07:00
Sally Coolatta
dd94b1449e Juicebox gates forward port for SPB 2022-09-21 07:05:26 -04:00
Sally Coolatta
fac7bb0627 Merge branch 'master' into item-bungus 2022-09-16 06:56:23 -04:00
Oni
ea3818d285 Merge branch 'hear-pain' into 'master'
Improved MKSC-style hit confirms

See merge request KartKrew/Kart!659
2022-09-07 04:44:03 +00:00
Sally Coolatta
bc538a066f Fast falling
E-Brake in the air for x4 gravity, at the cost of a tiny bounce on landing.
2022-09-04 21:21:25 -04:00
Sally Coolatta
01af5127c8 Improved pain then hit confirm sound
- The pain + hit confirm delay is done for all players, instead of only the damaged player.
- The player who got the hit also gets to hear their pain sound at full volume.
- Changed the code so that your hit confirm sound effect will no longer be interrupted if the player who got hit left the game.
2022-09-04 14:23:51 -04:00
toaster
2c91f83a02 Store tripwire pass level on the player
Fixes tripwire leniency fadeout - previously broken two commits ago
2022-08-30 21:22:26 +01:00
Sally Coolatta
429f61966e Merge branch 'master' into item-bungus 2022-08-23 23:42:21 -04:00
Sally Coolatta
ebb34ff9d4 Lap based power level 2022-08-14 06:00:37 -04:00
Sally Coolatta
e2ac698247 Make Ballhog more interesting
- No more instant fuck you button. You charge up a meter instead by holding down attack, and let go to fire as many as you charged up. Tapping fires one out of five, holding for the entire duration shoots out all five like before, but anything inbetween is also possible.
- Ballhog projectiles scale up over time (like Contra spread shot), to help make it stronger again after players started getting faster.
2022-05-27 17:51:47 -04:00
AJ Martinez
3bc5fac430 Adjust steering lock after successful DI 2022-05-23 16:47:27 -05:00
Sally Coolatta
83b5bfef59 Super Circuit hit confirms
After getting hit, you'll hear the person who hit you's hit confirm from any distance
2022-05-22 03:26:32 -04:00
Sally Coolatta
56c23339be Directional Influence
Pretty much just copy+pasted from Snap the Sentinel!!
- Hold left/right to adjust the momentum angle after hitlag, up to 22.5 degrees. (Only angle can be adjusted, so you can't adjust your speed, only your direction.)
- It's relative to your angle, so sometimes you need to use forward/back, or even diagonals (forward/back throws now store full analog data for this to work)
- Bananas flip DI direction, to make them not baby easy mode
- Tumble has x3 DI (so angle adjustments of 67.5!!), and hitlag on each bounce to allow even more control.
2022-05-20 01:45:16 -04:00
Sally Coolatta
9ab0e028d4 Tripwire leniency
1 full second after entering a tripwire state, you can still go through tripwires
2022-05-08 01:03:11 -04:00
toaster
8de92e8dca Merge branch 'master' into boss
# Conflicts:
#	src/k_bot.c
2022-03-17 16:58:42 +00:00
toaster
fcb6a4e1ab Disable the vanilla-sourced "keepbody" (rejointimeout) feature. 2022-03-14 16:33:03 +00:00
toaster
5f3bf3e8a2 A first-pass attempt at the "digestion" hidden stat for Battle - pushing just in case I fall asleep before we can explore this, and/or end up busy in the next few days.
* At the start of the first bar, everyone digests spheres at 1 per second, same as before.
* This actually only starts counting down from the most recent moment your spheres becomes nonzero, which is a very, VERY tiny buff to prevent their instant depletion.
* At around 40 spheres:
    * Chao digests them at 1 sphere per *tic*. Might be slightly too punishing.
    * Mecha Sonic digests them at 1 sphere per... 33 tics, or barely faster than before. Might be slightly not punishing enough.
    * Everyone else is linearily in between.
2022-03-06 22:23:40 +00:00
Sally Coolatta
c6f69e8f59 Add required speed percent 2022-01-02 21:42:20 -05:00
Sally Coolatta
b3d3135c58 Instead of embedding specific textures to be tripwire in hardcode ... make it a TERRAIN flag! 2021-12-09 15:54:22 -05:00
Sally Coolatta
cb5ea8b335 Add basic damage hitlag effects
- Invert high contrast greyscale colorization effect for damage hitlag
- Jitter is now also exclusive to damage-related hitlag
- Since jitter is now just tied to a flag, removed the old trick momentum hack
2021-11-27 13:38:45 -05:00
SteelT
b3cee8b8fc Merge branch 'master' into trick-panels-changes 2021-06-10 23:45:35 -04:00
Sally Coolatta
e5d899412c FIX PARTIES 2021-04-23 03:53:35 -04:00
Latapostrophe
d10f4ea128 More suitable data types + lua push 2021-04-23 00:14:36 +02:00
lachablock
aeaf6c94f5 Give purple & rainbow driftboosts a 30% speed boost 2021-04-21 14:40:13 +10:00
lachablock
5e327e09c6 Merge master (resolve structgunch conflicts) 2021-04-20 16:09:59 +10:00
Sally Coolatta
9d7ec0ab8f Merge SRB2 next
Probably doesn't compile yet, but I got rid of all of the conflicts for anyone who wants to take a stab at it.
2021-02-27 05:18:36 -05:00
Sally Coolatta
93c5942ceb Air failsafe boost
While in the air: release accelerate while at nearly-still speeds, and you'll preform a minisucle air drift boost. This mechanic is meant to fix the long-standing issue where you can get stuck in 0 speed in the air and not be able to do anything.
2021-02-07 14:07:27 -05:00
Sally Coolatta
4535a642d6 Merge branch 'master' into spindash-rebalance 2021-02-07 02:35:55 -05:00
James R
caa7fe1b47 Merge branch 'player-new-frames' into 'master'
New player frames: Glancing and death

See merge request KartKrew/Kart!362
2021-02-06 05:57:11 -05:00
Sally Coolatta
ee68862d1f Drift protection
Before, doing a spindash input while turning, but not being at a low enough speed, would make you start drifting.

Now, it checks if you're trying to E-Brake first before interpreting it as a drift input.

If you were already drifting, then attempting accel+brake will still be brake-drift, so that technique is unaffected.
2021-02-06 00:08:28 -05:00
Sally Coolatta
b7e578b82b Keep look backwards direction in a variable, so it can smoothly rotate 2021-02-04 00:26:59 -05:00
Latapostrophe
0657e1bb38 player.respawn wasn't pushed either?? 2021-01-31 22:24:41 +01:00
Latapostrophe
aee76fe88d expose karthud to lua. bruh. 2021-01-21 22:18:00 +01:00
Latapostrophe
3cd4c87df5 Weaker tumble, some effects + tumble on spring panel fail 2021-01-09 21:58:35 +01:00
Sally Coolatta
cfda66103d Merge branch 'master' into just-tumble 2021-01-06 23:02:51 -05:00
Latapostrophe
fe4d9ce889 New trick panel shit (but only the gameplay part) 2021-01-06 21:20:28 +01:00
Latapostrophe
74a39837bb Merge conflicts 2021-01-06 18:33:42 +01:00
SMS Alfredo
0118d60c06 Expose player.skin and player.availabilities to Lua as Read-only 2020-11-25 12:35:36 -06:00
Sally Coolatta
14b379fd27 Cherry-pick 4eb69a664 2020-11-16 19:52:26 -05:00
Sally Coolatta
56a20d05df Merge branch 'master' into battle-rethink 2020-11-11 00:11:18 -05:00
Sally Coolatta
fc934b38e1 Merge public next 2020-11-10 15:32:48 -05:00
Sally Coolatta
0e28470228 Merge master 2020-11-08 02:34:24 -05:00