Commit graph

1347 commits

Author SHA1 Message Date
James R.
0a6fedc48a Hyudoro: carry item capsule back to player, use MT_EMERALD for collect animation
- Carry back item capsule, painted with the skincolor of
  the player who was stolen from
- Give player item by orbiting and shrinking into the
  player like an emerald
  - Lock player item box while animation plays, draw an
    empty item box on the HUD
  - At end of animation, burst item capsule to place item
    in player's hotbar
- Hyudoros can no longer stack items in the hotbar --
  consistent with item capsules
  - (If you have a Super Ring in your hotbar and Hyudoro
    is holding a Super Ring too, it will wait for you to
    use yours)

---

MT_ITEMCAPSULE changes:

- extravalue2 != 0: use this color on caps
- MF2_STRONGBOX: award items like the roulette
  - Super Ring is placed in the hotbar instead of awarding
    rings directly
  - SPB is placed in the hotbar instead of throwing it
    immediately
- DMG_INSTAKILL: don't respawn
2023-09-17 21:56:19 -07:00
James R.
784090ec00 Nullify damaging hitlag for players with hyudorotimer 2023-09-17 21:56:18 -07:00
James R.
4819290ca2 itemroulette_t: add reserved member, block roulette and P_CanPickupItem, draw empty item box in HUD 2023-09-17 21:56:18 -07:00
James R.
a6f8f53312 P_IsPickupCheesy: add debugcheese cvar 2023-09-17 19:57:55 -07:00
toaster
9ba5a93407 Merge branch 'spraycans-2' into 'master'
Tutorial Spray Cans

Closes #669

See merge request KartKrew/Kart!1498
2023-09-17 13:17:41 +00:00
James R.
b84b20510f P_TouchSpecialThing: MT_RANDOMITEM: fix -Wpedantic 2023-09-16 23:12:41 -07:00
Oni
35c388c877 Merge branch 'item-pickup-restrictions' into 'master'
Anti item farming

See merge request KartKrew/Kart!1492
2023-09-17 04:55:54 +00:00
toaster
753b733f7e Permit multiple Spray Cans in one map
- Up to 255
- Each Spray Can placed does, in order, the postion in the list from the current head
    - So if there were 3 cans, and your can list was Red Yellow Blue Green, then Red, Yellow, and Blue would be in the level.
- Grabbing the nth colour in the list will swap that colour to the current head of the list
- However, the game will print to the console if you do this outside of GS_TUTORIAL.
2023-09-13 18:02:43 +01:00
AJ Martinez
e71e194ddf Anti item farming: edge case fixups 2023-09-12 16:18:50 -07:00
AJ Martinez
c1ab333b27 Anti farming: having a stroke and can't read GitLab UI 2023-09-12 04:19:57 -07:00
AJ Martinez
785928c339 Anti farming: push the actual fucking code please 2023-09-12 04:14:49 -07:00
AJ Martinez
34061869c7 Anti item farming 2023-09-11 23:51:13 -07:00
Oni
0c79995370 Merge branch 'fix-splitscreen-progress-bar' into 'master'
Fixes for: HUD sliding, fading; Sealed Star progression bar, exit behavior

Closes #668 and #666

See merge request KartKrew/Kart!1483
2023-09-12 04:39:31 +00:00
James R.
c844d00b40 P_CheckRacers: don't use 30 second countdown in cooperative game modes (Special Stages) 2023-09-11 18:33:31 -07:00
AJ Martinez
aa273a6fbb Don't pick up rings in spindash charge 2023-09-11 17:24:44 -07:00
James R.
57368ab7c6 P_KillPlayer: only do "special out" for death pits, other deaths use normal animation 2023-09-10 23:50:59 -07:00
Sal
0675a4e527 Tally screen 2023-09-09 05:27:55 +00:00
James R.
eca8804c0e P_KillPlayer: fix "special out" -- player shrinks to a speck from dying in Sealed Stars
Regression due to refactoring. I added some comments to
put emphasis on the intended behavior.
2023-09-08 03:12:03 -07:00
toaster
86a61c4c0d Additional relevant comment changes 2023-09-01 21:15:45 +01:00
VelocitOni
8845700c06 Starpost Gentrification
Replaced all mentions of starpostnum and Starpost w/ cheatchecknum and CheatCheck (so Ivo can stop asking why we still need it when its going to save our asses on release patches)
2023-09-01 00:31:49 -04:00
toaster
43eb61dfcb Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into prisons-death-fix
# Conflicts:
#	src/p_inter.c
2023-08-31 14:02:38 +01:00
James R
fd346db927 Merge branch 'safer-fastfall-momentum-reset' 2023-08-28 00:55:00 -07:00
James R
652792ddd3 K_KartSpindash: reorganize so fastfallBase doesn't need to be reset on landing
Makes resetting fastfall due to special conditions more
straightforward, because you don't need to reset
fastfallBase also.
2023-08-27 04:36:09 -07:00
James R
5d8efb66a4 Sealed Stars: show text on the screen for loss conditions
Player dies:

    FALL OUT!

Player finishes before collecting the emerald:

     EMPTY
    HANDED?

UFO finishes before player:

    TOO LATE...
2023-08-26 21:39:18 +01:00
toaster
e123ed7480 MAJOR cleanup of Spectator set/unset
- G_AddPlayer now contains CL_ClearPlayer, G_DestroyParty, and playeringame set
- Instead of a nasty, complicated block in P_SpawnPlayer, externalise it into G_SpectatePlayerOnJoin
- All mid-game human player-to-spectator transitions are handled by P_SetPlayerSpectator, instead of lots of `spectator = true` and associated boilerplate
    - Simplifies Got_Teamchange MASSIVELY
        - Of course this is helped by also stripping back team change
    - This is called by P_KillPlayer, too
- P_KillPlayer no longer eats DMG_SPECTATOR when lightsnaking or exiting
- G_GametypeHasSpectators condition tidied
2023-08-26 19:48:20 +01:00
James R
71f9b79e71 Prisons: fix exit conditions around spectating
Fixes player death not ending a Prisons round, bugged
debug feature.

Now, do it properly. Don't end the round if the last
player spectates.

This is more than a debug feature; in Free Play, it lets
the player spectate and fly around if they want to, and
even come back in, all without restarting the level.
2023-08-26 12:35:16 +01:00
Sally Coolatta
3c8eb505cc Merge branch 'master' into thing-script-args 2023-08-25 18:32:55 -04:00
toaster
a3640110ae Only permit Spray Cans to be grabbed on base game levels
I would not be so heavy handed against preventing players from grabbing Spray Cans on custom levels, but designing a system that permits unloaded headers to retain their cans is frankly overkill. There are plenty of other ways the same kind of level-scouring play can be experienced on custom levels.
2023-08-23 17:16:07 +01:00
toaster
e1b7cb66cb Rework the Spray Can system to ACTUALLY be what we want
Instead of being specific to each level, Spray Cans are stored in a list on gamedata that will be stepped along each Spray Can you collect.
They are only assigned to a level on collection - which prevents you from farming the same easy location for every colour in the game.

In addition, this new system is one step short of dehardcoding them entirely. Now only Spray Cans specifically asked for by the existence of UC_SPRAYCAN will be put in the list, and if a secondary parameter is either "Yes" or "True", it will be put at the head of the list. This could technically support custom skincolours one day, but the author of this commit doesn't care to do the last bit of work necessary to make it happen.

There's a slight extra overhead in that skincolor_t now also holds a `cache_spraycan` (renamed from `cachedcan`, which maps had previously)

Currently, there's no safeguard against grabbing it on a custom course - you'll lose the Spray Can as soon as you load a fresh game again - but  I consider that easy to fix (tomorrow) and necessary before merger, because the author of this commit does NOT want complaints on release because we forgot to protect users who keep on losing their skincolors.
2023-08-23 00:46:46 +01:00
toaster
6735868e26 MT_EMBLEM: Adjut to not run anything if not local 2023-08-23 00:31:10 +01:00
toaster
f7635c4399 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into spraycans 2023-08-22 19:57:28 +01:00
Sally Coolatta
f02e6dbe3c Final thing args code cleanup
- Fix the last few bugs I could find with thing args
- Move version update code
- Rename internal variables to `thing_[string]args` to make older code merge issues more obvious
2023-08-22 02:14:09 -04:00
Oni
07aabdfdb3 Merge branch 'battle-emerald-collect' into 'master'
Emerald collection polish, animation for Battle and tweak to Sealed Star

See merge request KartKrew/Kart!1408
2023-08-20 06:10:35 +00:00
toaster
dc695e7acf First pass at implementing Spray Can pickups
- Replaces a few D00DKart objects because the doomednum specifically replaced one of these
- Reports on load if the map has too many, or if one's assigned but the object doesn't exist
2023-08-19 22:21:20 +01:00
toaster
3036eaf35d MT_EMBLEM: Rework grabbable conditions, so you pass through collected ones in both offline and online for consistency 2023-08-19 22:11:56 +01:00
James R
01e2a26689 DEVELOP: let us spectate or pause the game at all times
TODO: This should be available as a debugging option at
release, since it would be useful for addon authors.
I don't want to make more cvars, those are getting
cluttered and should maybe be coalesced into a single
debugging option.
2023-08-19 05:01:40 -07:00
James R
dd7f6b17dd Add fuse behavior to emerald orbit, Battle collect animation
- Battle emeralds orbit into the player's body upon
  collection
- Emerald shrinks down to a speck
- Orbiting speed increases over time
- Player's emerald flags altered at the end of the
  animation
2023-08-19 03:28:41 -07:00
Oni
17370b1cf8 Merge branch 'damage-cancels-fastfall' into 'master'
Stop fastfalling when damaged

Closes #588

See merge request KartKrew/Kart!1386
2023-08-12 16:30:43 +00:00
James R
e75204a899 Replace instances of itemRoulette.active = false with K_StopRoulette
Properly clear ringbox state so it doesn't override egg
transfer item HUD.
2023-08-11 19:21:59 -07:00
James R
80ec082f5b P_DamageMobj: nil player fastfall 2023-08-11 18:39:33 -07:00
AJ Martinez
cd28e4d150 No Special Stage ringbox, always Record Attack ringbox 2023-08-11 01:15:34 -07:00
AJ Martinez
0c45500901 Ring Box dopamine 2023-07-30 22:15:50 -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
a812ef8809 DMG_WHUMBLE
There are two differences between Whumble and Stumble.
- Stumble cannot be combo'd on upwards momentum, while whumble can. (Resolves #522)
- Whumble takes bumpers, while stumble does not.
    - Removes the MT_INSTAWHIP hack.
2023-07-18 17:39:17 +01:00
James R
4874c90f8d Don't pickup emeralds if in pain state 2023-07-03 06:20:19 -04:00
James R
4d24eb71b6 Battle: scale Overtime Barrier to minimap size 2023-07-03 06:20:18 -04:00
James R
8931c7f570 Always shrink Overtime Barrier in 30 seconds 2023-07-03 06:20:18 -04:00
James R
9c8ce17c1e Don't steal bumpers unless below 3 bumpers or dealing STEAL damage (sneakers) 2023-07-03 06:20:17 -04:00
Sally Coolatta
5067bb854a Split hitlag into its own file 2023-06-30 23:05:40 -07:00