Commit graph

2303 commits

Author SHA1 Message Date
James R
04bc0b6b9d Add fuse to Emeralds in Battle, same as dropped items 2023-03-23 19:39:28 -07:00
Oni
b9bbb6cb8a Merge branch 'conditions-cascading' into 'master'
Conditions Cascading

Closes #366

See merge request KartKrew/Kart!1053
2023-03-23 23:51:30 +00:00
Chromatian Keiske
fd122e7d62 Merge branch 'paranoia-mobj-reference-count' into 'master'
Tune up PARANOIA warnings for mobj reference count

See merge request KartKrew/Kart!1070
2023-03-23 08:11:04 +00:00
Gunla
6f6df2cfe2 Merge branch 'fix-perpetual-damage-floor-respawn' into 'master'
Reset TERRAIN when respawning

See merge request KartKrew/Kart!1068
2023-03-23 01:00:49 +00:00
AJ Martinez
312e847151 Merge branch 'fix-faulty-mobj-references' into 'master'
Fix faulty references for monitors and players

See merge request KartKrew/Kart!1071
2023-03-22 07:43:37 +00:00
Gunla
9b1179518a Merge branch 'blue-target' into 'master'
Give Drop Target a weaker state when thrown forward

Closes #471

See merge request KartKrew/Kart!1049
2023-03-22 00:37:44 +00:00
James R
a396ffe676 Init mobj references before mobj specific spawning in P_SpawnMobj
Fixes MT_MONITOR leaking references due to
Obj_MonitorSpawnParts called before P_AddThinker.

Thanks to toaster
2023-03-20 20:00:10 -07:00
James R
d0719ef5ba Fix mobj reference management of player->mo
Thanks to toaster
2023-03-20 20:00:10 -07:00
James R
67f4505a06 Revert "Add cv_scrambleremoved, disable scramble on P_RemoveMobj"
This reverts commit a55ddef528.
2023-03-20 19:57:00 -07:00
James R
509a023329 PARANOIA: add debug to P_SetTarget if references go negative
Prints mobj address, mobj type, thinker function,
reference count and source code line number.
2023-03-20 19:57:00 -07:00
James R
abc11fc16f Reset TERRAIN when respawning
Fixes damage floor TERRAIN applying for the entire
duration of lightsnake.
2023-03-19 22:40:43 -07:00
toaster
4c0077e07c Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading 2023-03-19 13:01:06 +00:00
toaster
bfbbfc2842 Merge branch 'prison-ufos' into 'master'
Prison UFOs

See merge request KartKrew/Kart!1060
2023-03-19 13:00:31 +00:00
James R
dc024b874b Morph Drop Target from forward thrown white to lime
Blends from white into lime over 27 tics.
2023-03-19 03:52:25 -07:00
Gunla
b8f3c7e357 Merge branch 'fastfall-with-speed' into 'master'
Scale fast fall momentum with speed at time of trigger

See merge request KartKrew/Kart!1047
2023-03-18 23:00:06 +00:00
toaster
81e880464a CD Special Stage UFO changes
- MT_CDUFO is now a valid type of Prison in Prison Break
    - Tracked on counter
    - Tracked on HUD
    - Tracked on minimap
- P_AddBrokenPrison in p_inter.c
    - Generalises behaviour on breaking a Prison Break object
- MT_CDUFO polish
    - Can now be broken with all damaging objects EXCEPT Shield Orbinaut/Shield Jawz
        - These two are exceptions to prevent them from denying you your on-contact item grab., which these will still give you if you touch them
    - Breaking the object by touching it now causes hitlag instead of fireworks
        - The fireworks were to make touching it feel good... but hitlag feels better :P
    - Now supports mapobjectscale directly.
    - Scaled 1.5x mapobjectscale
    - Hitbox now far closer to actual sprite (which was just replaced, but was inexplicably far away from the old one too)
2023-03-18 00:22:44 +00:00
toaster
fcfaf1321c Flame shield polish
- MT_FLAMESHIELD: Flicker dispoffset depending on whether frame is supposed to be behind or in front of player
- MT_FLAMESHILEDUNDERLAY: Use P_SpawnMobjFromMobj to match interpolation coordintes, any other relevant properties, etc
2023-03-17 21:31:50 +00:00
toaster
a134465e65 S3K Shields: remove splitscreen-dependent mobj position behaviour
Was especially egregrious for bubble shield, which literally has a hitbox and could've caused live desync.
2023-03-17 21:27:19 +00:00
toaster
2e1efaff0c Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading
# Conflicts:
#	src/k_battle.c
#	src/k_hud_track.cpp
#	src/k_kart.c
#	src/p_inter.c
2023-03-14 21:59:19 +00:00
James R
f390ff26ec Scale fast fall momentum with speed at time of trigger
Previous was 4x gravity. Now 3x at the lowest, scales up
to around 8x at 200% speed (can go further).
2023-03-13 20:11:53 -07:00
James R
1f70b9c63c Merge remote-tracking branch 'origin/bumpers-ARE-health' 2023-03-13 00:51:44 -07:00
Sal
073b787a82 Merge branch 'fix-director-reset-if-others-join' into 'master'
Only toggle director when you yourself spawn or when the first player in the level spawns

See merge request KartKrew/Kart!1006
2023-03-13 04:07:46 +00:00
toaster
241475155b Rename "Break the Capsules" to "Prison Break"
We had this collective consciousness bigbrain moment in VC together, and it can literally only happen in this branch because unlocks.pk3 is the only main-game asset that needs to change for it
Solves the big problem we had with mixing up Item Capsules and ~~Battle Capsules~~ PRISON EGGS
2023-03-12 20:17:46 +00:00
toaster
01f6eb71f5 Optimisation: reduce the number of calls to M_CheckUnlockConditions
- For P_Ticker()'s calls to M_UpdateUnlockablesAndExtraEmblems
    - Do not check non-UCRP_REQUIRESPLAYING conditions
        - Controlled by a new `boolean doall` parameter to M_UpdateUnlockablesAndExtraEmblems
        - Most other contexts have this as true
        - Forced true if update is meant to be silent
    - Only check UCRP_REQUIRESPLAYING conditions if a relevant property has been touched
        - Controlled by a new `boolean checkthisframe` property on roundcondition_t
        - Set in all contexts where roundcondition_t is modified
        - Would also be set on lap change, but that case is already covered by the following
- Check all conditions, both UCRP_REQUIRESPLAYING and not, on:
    - local player K_HandleLapIncrement
    - local player P_DoPlayerExit
    - local player P_DoTimeOver
    - Controlled by a new `boolean deferredconditioncheck` property on gamedata_t
2023-03-12 13:52:28 +00:00
James R
264e445f0c Add MF2_ALREADYHIT; don't deal damage for multiple wombos within the same tic
These wombos still create hitlag.
2023-03-11 05:39:07 -08:00
James R
8c1771112c Fix Bubble Shield duplicate collisions
Bubble Shield could collide with the same object up to
5 times per tic! (3 times at least!)

1) P_CheckPosition from MFE_ONGROUND being unset.
2) P_CheckPosition AGAIN from MFE_ONGROUND being unset
   while literally being on the ground. This one's
   probably a bug in general but it's beyond the scope of
   this commit. It's also scary movement code, yiiiikes...
3) P_MoveOrigin to teleport the Bubble to its holder's
   position.
4) If something moves into the Bubble.
5) If something moves into the player holding the Bubble.

This generated extra unwated hitlag, especially noticeable
against invincible players.

To reduce these to one collision only, the Bubble is now
MF_NOCLIPTHING except while calling P_MoveOrigin. The
player's own hitbox is also disabled for Bubble
collisions.
2023-03-11 05:39:07 -08:00
James R
ee4011cca6 Don't pause mobj thinker for player whose hitlag will be cancelled anyway 2023-03-11 05:36:24 -08:00
toaster
40786a006c P_MobjCheckWater: Remove wet player test print 2023-03-09 16:40:39 +00:00
James R
a3c64068e6 Replace bumpers completely with health
Adds some functions:

- K_Bumpers, bumper count for the count, intended for
  where player->bumpers was used in HUD and visual
  contexts.
- K_BumpersToHealth, converts bumper count to health
  points.

player->mo->health replaces player->bumpers where it was
used in health contexts.

Removes some functions:

- K_HandleBumperChanges
- K_DestroyBumpers

Everything K_HandleBumperChanges did has either been
removed or moved elsewhere. P_KillMobj also already called
K_CheckBumpers.

K_DestroyBumpers became pointless after player->bumpers
was removed.
2023-03-07 22:54:33 -08:00
toaster
d2c36c952a Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading
# Conflicts:
#	src/k_grandprix.c
#	src/k_grandprix.h
2023-03-07 19:37:46 +00:00
James R
aa927a5b00 Merge branch 'overtime-spectator' 2023-03-07 01:45:16 -08:00
James R
540bd6e18d Merge branch 'improve-battle-tracking' into 'master'
HUD TARGET for Battle Kiosk, Monitors and Emeralds; remove WANTED over players' heads

See merge request KartKrew/Kart!1016
2023-03-07 09:44:07 +00: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
James R
a55ddef528 Add cv_scrambleremoved, disable scramble on P_RemoveMobj
Because Monitors and players leaving leak references,
disable this crashing to be able to test other stuff at
least.
2023-03-06 22:55:01 -08:00
Oni
cdc56ab2cc Merge branch 'podium' into 'master'
Podium

See merge request KartKrew/Kart!1014
2023-03-07 05:58:20 +00:00
James R
b023b16561 Remove WANTED over players' heads, TARGET wanted player 2023-03-06 18:52:53 -08:00
James R
20fe13deb7 HUD TARGET for Battle Kiosk, Monitors and Emeralds
Except in Break the Capsules, Boss mode or DUEL mode:

- When Overtime begins, all TARGETs are hidden and the
  Kiosk is targeted instead. Blue colored TARGET.

- TARGET player themself sees TARGETs on emeralds and
  monitors with emeralds inside. TARGET color matches
  emerald.
2023-03-06 18:52:53 -08:00
Sally Coolatta
20dedb6602 Try to fix the podium bot spawning (again)
- Podium waypoint initialize is done always directly after spawning the player, instead of trying to detect it in K_UpdatePodiumWaypoints.
- Position is manually calculated for K_InitializePodiumWaypoint, instead of needing K_UpdateAllPlayerPositions to be called.
- Instead of calling K_UpdateAllPlayerPositions every time a player spawns, do it at the end of the spawning loops.
- Prioritize spawning bots in further away spots instead of 1st available, as spots 1st to 3rd spots are more important.
2023-03-06 18:24:51 -05:00
toaster
baeb48ca1f roundconditions_t - State tracking for events which occour mid-match and don't stay that way
- Exists on every player struct to simplify writes, but A) not netsynced and B) only checked for local players
- Updated in the relevant locations - no centralised ticking at the moment
- Has a number of new associated conditions that require playing (UCRP's).
    - The following require [True/False] as supplementary information.
        - FallOff
        - TouchOffroad
        - TouchSneakerPanel
        - RingDebt
    - The following have no supplementary information because they're universally a specific achievement.
        - TripwireHyuu
        - SPBNeuter
        - LandmineDunk
        - HitMidair
    - The following has specific requirements that can be set.
        - WetPlayer [name of fluid]
             - Append "Strict" to forbid even skimming the surface of the map's fluid.
2023-03-06 22:31:35 +00:00
James R
feb70916c1 Merge branch 'bumpers-use-health' into 'master'
Sync player mobj health to bumper count

See merge request KartKrew/Kart!1003
2023-03-06 15:43:24 +00:00
AJ Martinez
f4fbd1e654 Sliptide boost VFX first pass 2023-03-06 05:00:59 -07:00
Sally Coolatta
2b706fb95b G_PlayerReborn jointime betweenmaps
Fixes newly created bots having 0 rings.
2023-03-05 15:00:05 -05:00
Sally Coolatta
9c264b3736 K_UpdateAllPlayerPositions
Call this whenever we need accurate player positions. In addition to before player think, is now being used for exiting as well as immediately when the player is spawned.
2023-03-05 14:59:11 -05:00
AJ Martinez
320685cf97 SPB Attack: review fixup omnibus 2023-03-04 06:41:44 -07:00
Sally Coolatta
ea4ff616a9 Fix broken float flag 2023-03-03 22:16:30 -05:00
Sally Coolatta
35d0cb8eaa Move podium code to its own file 2023-03-03 16:10:05 -05:00
Sally Coolatta
a1976aa43d Fixes for podium bots loading
- Handle bot spectator on spawn purely in P_SpawnPlayer from now on
- Don't give podium players flashing tics
- Don't call P_MovePlayerToStarpost during podium. (Needs further fixing in another branch, since this also apparently affects bot spawning in all maps.)
- Update mobj_t pointers in CL_ClearPlayer if G_GamestateUsesLevel()
- Forcefully set initial podium waypoint if jointime <= 1
- Use G_SpawnPlayer consistently in P_InitPlayers for podium
2023-03-03 16:10:05 -05:00
Sally Coolatta
2dae6833c2 Fix camera jitter when changing waypoints 2023-03-03 16:10:04 -05:00
Sally Coolatta
5c6cec7b31 Cleanup UDMF thing scale code
Turns out what I was trying to fix was not a bug, but I will keep this anyway.
2023-03-03 16:10:02 -05:00
Sally Coolatta
0156eaf81f Don't fault respawn in podium 2023-03-03 16:10:00 -05:00