Commit graph

2839 commits

Author SHA1 Message Date
VelocitOni
3283ced078 Stacked excess ring time = more power
x1.5 times stronger juice from excess rings stacked
2023-08-11 00:59:54 -04:00
James R
e89ecc7a2d Merge branch 'music-technology' into 'master'
Replace music handling

See merge request KartKrew/Kart!1369
2023-08-08 22:19:36 +00:00
AJ Martinez
91d6fecaf9 Don't always register the fucking cvar 2023-08-07 19:20:57 -07:00
AJ Martinez
4b0a9ce7a6 Register the fucking cvar 2023-08-07 19:19:59 -07:00
AJ Martinez
bf48f64a5c Reduce ring sound volume as it's repeated 2023-08-07 05:59:06 -07:00
James R
39f46a0f20 Replace music handling
(This commit does not compile. Sound test and tunes
command code needs to be ported after this.)

This is a big one. Here's the rundown:

The old music system was very direct, much of the time
just a proxy to the real sound API in i_sound.h.

You could change the music on command, but there wasn't
a consistent way to prevent some music from playing over
others. P_RestoreMusic is one example of needing to
address this problem. The jingles system was intended as
another solution. Furthermore, sound test (Stereo) has its
own needs.

I am removing all of that. Music handling in general is
now a very deliberate system, kind of similar to jingles.

In the new system, "tunes" are registered. The tune stores
info such as whether it should loop or fade out. Most of
the configuration is intended to be initialized only ONCE.
Tunes can be mapped to an actual music lump. They can be
remapped at any time too.

Tunes are also configured with a priority number. This
determines which tune is heard, if multiple are supposed
to be playing at a time. You can even tell a tune how long
it should play, so it's unnecessary to track this with
bespoke timers.
2023-08-06 17:31:45 -07:00
AJ Martinez
4cfa163cf5 Save a math operation sometimes 2023-07-31 03:15:27 -07:00
AJ Martinez
0d3b6c57b0 Don't ringboost-scale speedlines past 2x (3x with tripwire leniency) 2023-07-31 03:04:13 -07:00
AJ Martinez
0c45500901 Ring Box dopamine 2023-07-30 22:15:50 -07:00
Oni
1325bf7afa Merge branch 'slow-degrease' into 'master'
Slower players lose springgrease faster (resolves #242)

Closes #242

See merge request KartKrew/Kart!1360
2023-07-29 18:45:37 +00:00
Oni
e9cea99ae7 Merge branch 'dashrings' into 'master'
Hardcode MT_DASHRING & MT_RAINBOWDASHRING

See merge request KartKrew/Kart!1345
2023-07-29 18:29:08 +00:00
AJ Martinez
1a6b8d49ea Allow flameshield gauge to quickly grow on acquisition 2023-07-29 05:18:36 -07:00
AJ Martinez
6607722b64 Simpler 120-tic flame shield behavior 2023-07-29 05:10:14 -07:00
AJ Martinez
dc39566acf Clarify degrease magic number 2023-07-29 03:53:04 -07:00
AJ Martinez
424cda41d4 Slower players lose springgrease faster 2023-07-29 03:51:46 -07:00
toaster
16e036a0bd Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into dashrings 2023-07-28 23:12:06 +01:00
Oni
e2aea58474 Merge branch 'louder-wavedash' into 'master'
Play wavedash sounds at full volume

See merge request KartKrew/Kart!1348
2023-07-23 17:22:36 +00:00
toaster
e0b47b16e7 Improve Spectator entry handling
- Re-entry SHOULDN'T get stuck nonzero on first join for a given node
    - Set to 0 for all players on level start
    - Set to 0 for all players on level end
    - DEFINITELY never intentionally set on join with teamchange finalisation
    - This basically just prevents people from spamming New Challenger after hopping out mid-session, since the previous version, in addition to being buggy, was a little annoying.
- New Challenger no longer happens on tic 0 of mapload
    - Handles any late, pending PF_PF_WANTSTOJOINs without threat of reset in P_PostLoadLevel
2023-07-22 14:03:11 +01:00
AJ Martinez
5d144243e5 Play wavedash sounds at full volume 2023-07-21 00:48:41 -07:00
Lach
bb5070afb0 Merge remote-tracking branch 'origin/master' into dashrings 2023-07-20 19:04:42 +10:00
Lach
a21e509a94 Hardcode MT_DASHRING & MT_RAINBOWDASHRING 2023-07-19 21:47:41 +10:00
toaster
ce08ac0f33 General tidy of mobj_t pointers on player_t struct
- CL_ClearPlayer
    - Delete followmobj, stumbleIndicator, and sliptideZipIndicator
    - Wipe flickyAttacker and powerup.flickyController
- G_PlayerReborn
    - Properly destroy the Follower and its bubble overlays, etc
    - Ensure ringShooter pointer is kept
    - Delete followmobj, stumbleIndicator, and sliptideZipIndicator
    - Wipe flickyAttacker and powerup.flickyController
- P_PlayerThink
    - Ensure all invalid pointers are erased, even on hitlag frames
2023-07-18 15:50:39 +01:00
toaster
e6619df2d4 Servant Hand: Refactor to use its own thinker
Since it's already ticking for the sake of a fuse, make it handle its own movement/scaling as well.

Spawning is still handled by the player thinker (and can be blocked by hitlag), but this permits it to disappear when a player dies/disconnects the server.
2023-07-18 15:45:49 +01:00
VelocitOni
30d21e960a Merge branch 'master' into hit-stop-efx
# Conflicts:
#	src/objects/ufo.c
2023-07-03 06:24:27 -04:00
James R
e94ae5bfef K_BattleAwardHit: evaluate win condition before adding points 2023-07-03 06:20:21 -04:00
AJ Martinez
1c633dd9ee Direct players to battle UFOs via Obj_PointPlayersToXY 2023-07-03 06:20:19 -04:00
James R
a98db957e6 WANTED player or Lightning Shield attracts emeralds 2023-07-03 06:20:19 -04:00
AJ Martinez
30207327c7 Use only Ring Box in SPB Attack 2023-07-01 15:43:41 -07:00
Sally Coolatta
5067bb854a Split hitlag into its own file 2023-06-30 23:05:40 -07:00
Sally Coolatta
98841e5c15 Calc scale once + ignore 0 tics 2023-06-30 23:04:34 -07:00
Sally Coolatta
4a98afc273 Set up future code for multi-sparks 2023-06-30 23:04:34 -07:00
Sally Coolatta
8c273039ab Add first pass at hitlag EFX
Only 9-tic animation is here currently, so hitlag is forced to 9 tics for testing.
2023-06-30 23:04:33 -07:00
James R
4f972588b4 K_BattleAwardHit: evaluate win condition before adding points 2023-06-30 21:35:15 -07:00
AJ Martinez
f8131cbd4e Direct players to battle UFOs via Obj_PointPlayersToXY 2023-06-30 19:58:02 -07:00
James R
43aa03bfc3 WANTED player or Lightning Shield attracts emeralds 2023-06-30 19:58:02 -07:00
Oni
219f3407cb Merge branch 'small-battle-fix-friday' into 'master'
Don't Guard Break when damage state player collides; remove invincibility effect when dropping "S" power-up

See merge request KartKrew/Kart!1317
2023-06-30 09:04:20 +00:00
James R
d4b0ee21ab Don't Guard Break if other player is in pain state 2023-06-30 00:47:14 -07:00
James R
1184e6d674 Battle: win by having enough points when you kill a player 2023-06-29 23:32:17 -07:00
Oni
da2e745bf7 Merge branch 'splitscreen-timer' into 'master'
Splitscreen level timer HUD

See merge request KartKrew/Kart!1309
2023-06-30 06:08:52 +00:00
James R
d8afc7597d Add K_FlingPaperItem, split off random thrust functionality
Battle UFO drops do not fling.
2023-06-29 22:22:00 -07:00
James R
17da46eda5 K_PointLimitForGametype: Battle, each player is worth 4 PTS, reduced from 5 2023-06-29 21:01:04 -07:00
James R
47a5a0b6dc Add Rhythm Badge power-up, no instawhip cooldown 2023-06-29 19:31:27 -07:00
James R
dafdb0fc10 Add K_GiveBumpersToPlayer, subset of K_TakeBumpersFromPlayer functionality 2023-06-29 19:31:27 -07:00
James R
ba114022b9 Add Barrier Power-Up
- Guard is always up, not activated by e-brake or spheres
- Guard can still be broken by player contact
- No instawhip cooldown from Guard being up
- No sphere loss while Guard is up
- Guard appears at max size
2023-06-29 19:31:27 -07:00
James R
e67ab6a116 Spawn Guard visual when player spawns, do not tie spawning to e-brake
Object already handles turning invisible if player has no
Guard.
2023-06-29 19:31:27 -07:00
James R
b0b7bf8185 Add S-Monitor power-up
- Give Invincibility effect to player
- Bumping players does not extend Invincibility time while
  power-up is active
2023-06-29 19:31:27 -07:00
toaster
f6ea3759c9 K_GlanceAtPlayers: Special handling for stopped players in Podium
1st: Look straight at camera, no matter what
2nd, 3rd: Look at any players with a better position, no matter how far away they are
Loser Valley: Stare forward like the serfs you are
2023-06-28 20:42:36 +01:00
toaster
e7ee979f1a Horncode
A much more focused replacement for Hornmod, specc'd out by Tyron and Oni working together and implemented by the author of this commit because it's pretty funny.

- Followers have `hornsound` in their SOC configuration.
    - The default sound for all followers without a provided one is sfx_horn00.
- They'll play this sound if you use lookback with one following you, and there's nearby players to get the player looking all the way around.
    - Only the players who are successfully considered for lookback will hear it.
- Has a v1-like visual with less randomisation, but still netsynced.
- Also controlled by the cvar `taunthorns`, which, like `tauntvoices`, takes "Tasteful" (default), "Meme", and "Off".

TODO: make the condition for horn a little delayed, so you have to hold lookback for a little bit.
2023-06-28 17:54:23 +01:00
toaster
1429a91cd9 Increase maximum # of Followers
Surprisingly easy as it requires negative values to mark "None", so it was already out of the range of UINT8
2023-06-28 16:36:36 +01:00
Oni
f393b9782b Merge branch 'super-flicky' into 'master'
Battle: Super Flicky power-up, give power-up command, general functions for interfacing power-ups (also Lua)

See merge request KartKrew/Kart!1301
2023-06-28 00:31:53 +00:00