Commit graph

86 commits

Author SHA1 Message Date
James R
eed5ada28c Ring Shooter: do not go backward, go straight to respawn waypoint
There was a bug here that could drop you at the finish
line waypoint. That could be bad because of sight check
discrepancy (see 99656765e).
2024-03-16 17:33:42 -07:00
AJ Martinez
9eb7379df6 TA: Don't end on death, but nerf lightsnake to minimum safe distance 2024-03-12 22:38:19 -07:00
SteelT
9e434dbc3c Play sound s3kb2 on player FAULT 2024-03-09 15:56:51 -05:00
James R
0ce209428f Respawn manual drop: check e-brake inputs directly instead of whether player can e-brake 2024-03-08 06:29:18 -08:00
James R
4ccb9b22c8 Ring Shooter: add a 2 second cooldown after respawning before you can touch a Ring Shooter
This does not prevent you from using the respawn button to
summon a Ring Shooter.

- Ring Shooter only tracks the last player who touched it,
  to prevent that player from reusing it
- If another player touches the Ring Shooter, it loses
  track of the original user
- Near a Block Lightsnake waypoint, this would enter an
  endless loop where both players are able to touch the
  Ring Shooter and use it to respawn, placing them right
  above the Ring Shooter (and the cycle repeats)
2024-02-29 03:28:53 -08:00
Oni
9636be99e2 Merge branch 'respawn-fuck' into 'master'
Order-of-operations bugs for finish line / respawning

Closes #954

See merge request KartKrew/Kart!1946
2024-02-25 07:19:59 +00:00
Eidolon
ad75389225 Add respawn to fault start if available
Fixes KartKrew/Kart#187
2024-02-24 22:02:23 -06:00
James R
0dd359ba5a Respawn: don't let Ring Shooter send you behind the finish line
Because lap decrement does not happen when respawning,
this would you skip a lap.
2024-02-23 22:54:34 -08:00
James R
a03cc5489c Respawn: move lastsafelap check to K_UpdateDistanceFromFinishLine
- Order of operations; it is possible in specific
  circumstances to respawn (K_DoIngameRespawn) before the
  lap increments
- In this case, the lap would be reset to lastsafelap and
  then incremented afterward
- This would allow someone to skip the first lap
- It was possible to do this in many maps where the finish
  line intersects a respawn line, by driving into the
  corner where the lines meet
2024-02-23 22:54:05 -08:00
AJ Martinez
97dcc33f0d Reset cheatchecks when respawns would decrease lap 2024-02-01 23:34:29 -07:00
toaster
97996d1a22 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into other-progression 2023-11-16 13:46:59 +00:00
AJ Martinez
d54d2f6d04 Merge remote-tracking branch 'origin/master' into catholic-vfx 2023-11-14 21:47:51 -07:00
AJ Martinez
3313935630 Don't allow respawn lap reset to increase lap 2023-11-09 20:27:18 -07:00
AJ Martinez
19edcbe9c2 WIP: Trickpanel crack IV 2023-11-09 02:02:41 -07:00
AJ Martinez
c11394ce83 WIP: Trick panel decrackening 2023-11-09 00:45:50 -07:00
AJ Martinez
954bd85139 WIP: Trickpanel crack experiments 2023-11-08 01:52:07 -07:00
toaster
ce93667fce GTR_CHECKPOINTS: Players will now respawn at Starposts
In addition, tighten up the handling for player angle at spawn time
2023-11-04 23:03:25 +00:00
toaster
340ac0de0f Self-review: K_DoFault - add challenge check deferral 2023-10-20 14:59:49 +01:00
toaster
0478d9a2e3 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into break-through-them-all 2023-10-19 17:32:35 +01:00
Oni
07298ce94b Merge branch 'force-waypoint-update' into 'master'
Update respawn waypoint on fastfall bounce, reset lap on track reset (resolves #705, #489)

Closes #489 and #705

See merge request KartKrew/Kart!1563
2023-10-19 07:21:01 +00:00
AJ Martinez
6f65d55009 Correct to safelap instantly to prevent finish distance spike 2023-10-18 22:40:24 -07:00
AJ Martinez
f0d0a0f07b Reset player lap when they reset to track 2023-10-17 22:18:49 -07:00
AJ Martinez
218fc1aeb3 Block Lightsnake: unfuck build 2023-10-17 20:37:13 -07:00
toaster
fa2e54dd13 UCRP_FAULTED
- `Condition1 = Faulted Yes`
    - `FAULT during POSITION`
    - for example, combine with "& finish in 1st"
- `Condition1 = Faulted No`
    - `don't FAULT during POSITION`
2023-10-17 23:21:47 +01:00
AJ Martinez
38aa1f9d6b Waypoint flag to block lightsnake 2023-10-17 03:54:23 -07:00
AJ Martinez
346f6c4ab0 Don't slow down fast respawns from loss-of-control etc 2023-09-22 20:17:28 -07:00
AJ Martinez
cb5f3f5b69 When respawning, return to first waypoint with consistent time 2023-09-22 19:54:22 -07:00
AJ Martinez
4875311ac9 Slower Drop Dash boost type 2023-05-27 21:55:26 -07:00
Sally Coolatta
d55c9038cc Bots: Can now use Ring Shooter
Reuses most of the anti-grief code, but with a very low timer (5sec) and they simply hold Y when reaching it until they eventually respawn from the ring shooter.
2023-05-14 19:32:51 -04:00
James R
efcdfbe665 Fix some instances of boolean not being set to true exactly 2023-04-24 18:14:37 -07:00
James R
56dcfaedf8 Respawning: set MF2_OBJECTFLIP directly in P_GetMobjGravity
K_RespawnOffset is called before the player is actually at
the waypoint's position, so even if P_GetMobjGravity is
called there to check, it reflects the player's current
sector, which may not necessarily be the waypoint's
sector.
2023-04-24 18:13:37 -07:00
toaster
5b348ee195 K_DoIngameRespawn: Ring Shooter-induced lightsnake always starts from the previous SPAWNPOINT waypoint, not the previous waypoint in general 2023-04-17 00:23:13 -04:00
Sally Coolatta
3b7ac38d9f Ring Shooter: E-Brake + adjust distance
- Y is now additionally another macro for HOLD!
- Disable HOLD! drop from respawning when done with Ring Shooter.
- Immediate release Ring Shooter now goes back a waypoint, and does not have a minimum distance to go forward anymore.
2023-04-17 00:23:11 -04:00
James R
6b02836c22 Do not run any thing collision for respawning players whatsoever
Adds MF_NOCLIPTHING to players while respawning.
2023-03-26 20:45:18 -07:00
Oni
e4ba544994 Merge branch 'buff-sliptide' into 'master'
Make sliptiding actually good

See merge request KartKrew/Kart!1020
2023-03-07 08:49:46 +00:00
AJ Martinez
5dea8f9bba Break zip combo when dying, idiot 2023-03-06 05:43:14 -07:00
James R
fec24381df Fix FAULT crash if no finish line waypoint 2023-03-02 23:40:54 -08:00
James R
6e5a5bf92d Apply flashing tics to RESPAWNST_DROP
Applies flashing tics to the entire respawn state so you
don't become vulnerable once you reach the waypoint.
2023-03-01 07:25:14 -08:00
James R
5ef24e1a3c Fix flashing tics flickering animation for light snake 2023-03-01 07:23:56 -08:00
James R
d90351d660 Don't FAULT outside of Race modes 2023-02-21 23:59:56 -08:00
AJ Martinez
32ea795639 Fault rework cleanup for merge 2023-02-13 15:31:39 -07:00
AJ Martinez
de268b744b Beam fault cleanup, make non-circuit death faults respawn at wp behind finish 2023-02-11 19:09:52 -07:00
James R
8ff95af61d Disable Drop Dashing while on the Garden Top 2023-01-14 18:35:49 -08:00
toaster
1213836564 Permit a lightsnaking player to go into RESPAWNST_DROP (the final second of lightsnake) early at any time after the initail bring-back-to-last-waypoint.
Needs balance testing, but resolves #299.
2023-01-06 13:20:04 +00:00
toaster
8431e52687 All playsim-internal distinctions between Race and Battle are now gametype rules.
New:
- GTR_POWERSTONES
    - Handles spawning in Battle Emeralds (currently only works stacked with GTR_PAPERITEMS)
- GTR_ENCORE
    - Codifies that Race can use Encore and Battle can't.
- GTR_CLOSERPLAYERS
    - A gametype where players are encouraged/expected to be closer together. (All of the following was GT_BATTLE specific)
        - Drafting/tether has increased strength/effective distance
        - Spindashing is stronger
        - Invincibility chaining has less effect
        - Grow has a lower total duration
        - Flame shield is more uncontrollable

Extra functionality
- GTR_CAPSULES
    - Prevents usage of lives in Grand Prix (so Race, and the upcoming Special and Boss gametypes, can have 'em)
- GTR_CIRCUIT
    - When not present, Flame Shield has perma-full meter
    - When not present, overrides gamespeed with KARTSPEED_EASY
    - Presence of Best Lap sticker in Time Attack menu
    - Seperation between Time Attack and Break The Capsules modeattacking roulettes
- GTR_POINTLIMIT
    - Handles the switch between a gametype recording/displaying Times and Scores in a few places
    - Handles displaying "WANTED" players on the minimap

Missing simple substitutions
- A whole bunch of cases where player->bumpers was checked with gametype == GT_BATTLE rather than GTR_BUMPER
- GTR_OVERTIME handles the overtime special icon on the minimap
- GTR_BATTLESTARTS is honoured in K_DoIngamerespawn
- The Replay hut is closer to supporting custom gametypes

Removals
- GTR_LIVES
- GTR_SPECIALBOTS
    - Given that grand prix persists between modes, these are special game-controlled features and not gametype-specific.
- GTR_WANTED
    - WANTED as it existed is functionally dead
2022-12-24 22:43:00 +00:00
James R
05dd7d7871 Merge remote-tracking branch 'origin/master' into HEAD 2022-10-01 14:45:39 -07:00
James R
23408e7d3b Let savecheckpoint work online, work at all
Actually respawns you at this location! 😃

Uses object Z position instead of floor height.
2022-09-29 06:43:44 -07:00
toaster
871de857ae Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into setangle
# Conflicts:
#	src/p_enemy.c
#	src/p_mobj.c
2022-09-24 20:23:35 +01:00
Sally Coolatta
dd94b1449e Juicebox gates forward port for SPB 2022-09-21 07:05:26 -04:00
toaster
3a4b485c5d Remove P_InitAngle and its kin, considered on a case-by-case basis for also setting old_angle as well. 2022-08-25 11:35:09 +01:00