Commit graph

888 commits

Author SHA1 Message Date
James R
99a2a3fb74 Let Bubble blow-up destroy any MF_SHOOTABLE object 2024-01-13 22:56:18 -08:00
James R.
3084b5ee18 Merge branch 'fix-bufo-fof' into 'master'
Fix Battle UFO tractor descending through FOFs

Closes #876

See merge request KartKrew/Kart!1807
2024-01-11 20:42:47 +00:00
James R
4f56006cc8 Battle UFO: tractor account for underwater gravity 2024-01-09 23:43:35 -08:00
James R
20353f2a84 Battle UFO: fix tractor descending past FOFs 2024-01-09 22:38:53 -08:00
James R
40b4cc845b Battle UFO: tractor pull strength is stronger at bottom, weaker at top 2024-01-07 23:10:59 -08:00
James R
8d2327c5c9 Battle UFO: do not suck up into tractor beam if player is fast-falling 2024-01-05 17:48:44 -08:00
James R
fe60216559 Battle UFO: slow down horizontal player momentum in tractor beam 2024-01-05 17:44:58 -08:00
James R
e4eb42dd36 MF_PAIN: remove sound effect functionality
There is a Nova Shore enemy that switches between
MF_SPRING and MF_ENEMY, and the upper bits of the mass
field are conflicting.

We don't use this functionality aside from some SRB2
holdovers, but who cares about those? ;)
2023-12-23 08:49:30 -08:00
James R
4746f877c3 Tricking players tumble other players, in all gametypes 2023-12-04 20:57:11 -08:00
James R
38d9875d4c Let player kill shootable objects if player can punt 2023-12-03 16:28:56 -08:00
James R
c5968ad3ad Hardcode Ice Cap Blocks 2023-11-27 05:07:30 -08:00
James R
aec21cd114 Hardcode SA2 Crates 2023-11-27 05:07:30 -08:00
James R
401321e310 Hardcode Ivo Balls 2023-11-25 05:35:06 -08:00
James R
4b3ea7460b Hardcode Gust Planet seasaws
- Add states
  - MT_GPZ_SEASAW_SPAWN
  - MT_GPZ_SEASAW_HITBOX
  - SPR_GPPS
  - SPR_GPZS

- Add objects API
  - Obj_GPZSeasawSpawn
  - Obj_GPZSeasawThink
  - Obj_GPZSeasawCollide

- objects/gpzseasaw.c
  - Gust Planet seasaw behavior
2023-11-21 01:07:17 -08:00
Oni
94a593487b Merge branch 'fix-reducevfx' into 'master'
Fix `reducevfx` mkaing some VFX visible, when they shouldn't be

See merge request KartKrew/Kart!1622
2023-11-18 07:11:25 +00:00
James R
72f1414432 MT_KART_LEFTOVER: remove fuse, let it be killed
Gets punted into the air when it's killed.
2023-11-15 20:03:47 -08:00
James R
c4e4c9e9b0 MT_SPIKE, MT_WALLSPIKE: entire hitbox hurts, hurt all objects, tumbles objects that fall onto spikes 2023-11-15 17:53:24 -08:00
AJ Martinez
d54d2f6d04 Merge remote-tracking branch 'origin/master' into catholic-vfx 2023-11-14 21:47:51 -07:00
James R
ee7f3d7108 Replace K_ReduceVFX with K_ReduceVFXForEveryone, replace owner cases with RF_REDUCEVFX 2023-11-13 23:49:33 -08:00
James R
61cad641bb Invincible player punts hazardous/solid things, unless MF_ELEMENTAL
If player is in one of these states:

- Invincibility
- Grow (K_IsBigger)
- Flame Shield dash
- Over 200% speed

And the other object:

- Does not have MF_DONTPUNT

Then, touching a solid object:

- Punts the object, unless the object has MF_ELEMENTAL
- Fizzles the object, if the object has MF_ELEMENTAL

Or, when an object damages the player:

- That object is punted, unless it has MF_ELEMENTAL
- The object fizzles, if it has MF_ELEMENTAL

Punting means:

- A copy of the object is made
- Both the player and copy receive 5 tics of hitlag
- The copy is thrust away from the player at a minimum of
  60 FU, or 2x either the player's or object's momentum,
  whichever is ultimately greater
- The copy despawns after 2 seconds
- The copy flickers constantly, while thrust away

Fizzling means:

- The object disappears completely
- A puff of smoke is spawned in place of the object
- No hitlag is applied to the player

Both punting and fizzling:

- Hide the original object (intangible and invisible)
- The original object reppears after 30 seconds
- For 2 seconds before reappearing, the object flickers
  back in, but is still intangible
2023-11-13 22:18:35 -08:00
James R
b81b932ba9 MF_MISSILE: do not run collision against other object, if MF_PAIN was evaluated 2023-11-13 19:24:20 -08:00
James R
39a7c3b3ad Remove MF_MONITOR 2023-11-13 19:23:54 -08:00
toaster
5cab2401b6 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into catholic-vfx 2023-11-12 16:24:47 +00:00
James R
7861d51a7f P_TryMove: sweep collided lines to find nearest normal 2023-11-10 00:03:06 -08:00
toaster
6f22c5261e MT_POGOSPRING: Guarantee spawn of catholocism 2023-11-07 22:53:52 +00:00
toaster
120b567ba2 K_DoPogoSpring: Handle player->trickpanel set directly 2023-11-06 01:09:06 +00:00
toaster
71d301779b Blend Eye Hardcode part EX: Code the rest of the owl 2023-10-31 21:47:18 +00:00
toaster
a8717f8ee2 PIT_CheckThing: Make MF_PAIN and MF_SOLID able to be stacked 2023-10-24 23:10:16 +01:00
James R
905592003d Add K_SetTireGrease, spawn spring grease VFX and set tiregrease 2023-10-14 21:28:11 -07:00
Lat
baa668895a Move transfer line dismount hack to linedef type 2005 2023-10-07 12:22:53 +02:00
Lat
dc6bb1bfa9 solve conflicts and update to master 2023-10-07 11:15:47 +02:00
toaster
a68a0b0135 All other modified files: Trailing whitespace cleanup 2023-09-26 22:51:58 +01:00
Lat
12b80b392b hardcode ring vaccums 2023-09-23 11:26:56 +02:00
Lat
ca90d27e30 Hardcode DLZ Hover thingies + rocket fixes 2023-09-23 11:00:00 +02:00
Lat
a565d923c0 Hardcode these cursed seasaws 2023-09-22 18:14:38 +02:00
Lat
fb91a9a0f7 DLZ rocket hardcode 2023-09-21 15:42:10 +02:00
Lat
908bbba4ec Rideroid: second pass 2023-09-18 18:14:00 +02:00
Sally Coolatta
c9291b0f61 Mobj thinker freeze condition rework
- There's a freeze cheat bool to freeze everything except for players.
- There's a level freeze bool to freeze literally everything.
- There's a frozen bool on mobj_t to explicitly control freeze status on an object.
2023-09-18 03:24:58 -04:00
James R
e83923a365 Checkpoints: add object configuration, collision, animations
This commit handles everything except actually respawning
the player at a checkpoint.

- Checkpoints are formed by two checkpoint things (2030):
  - thingarg0 - The ID for the checkpoint. Must be the
                same for these two things, and these two
                things only. ID cannot be 0.
  - angle - The direction the player is intended to face
            after respawning. Must be the same for both
            things.

- Each checkpoint thing is a starpost with a stick and an
  orb at the end.
- By default, the sticks are lowered to horizontal and
  face toward the opposite starpost.
- Rainbow tether sparkles form a field between the two
  starposts.
- When a player crosses between these two starposts, each
  spins in the direction that the player crossed. The
  sparkles also fly out in that direction.
- Over time the sticks pivot upward.
- When the starposts are done spinning, the sticks will be
  pointing straight upward.
- Orb at the end of the stick begins flashing when the
  starpost is done spinnning.

- Players may cross multiple checkpoints.
- When this happens, any previously activated checkpoint
  will have its stick lowered back to horizontal, and its
  orb will stop flashing.
2023-09-16 21:46:22 +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
a18982dc55 Merge branch 'splatbooster' into 'dashrings'
Hardcode MT_SNEAKERPANEL & MT_SNEAKERPANELSPAWNER

See merge request KartKrew/Kart!1349
2023-07-29 18:28:48 +00:00
Lach
2d7ae88586 Hardcode MT_BOOSTPAD as MT_SNEAKERPANEL 2023-07-21 19:19:28 +10:00
toaster
f9e11be98a UDMF upscaled springs: Treat as an increased hitbox only, not as a strength multiplier 2023-07-19 21:27:58 +01:00
SteelT
41ca397881 Don't thrust player if the UFO is dead 2023-06-29 22:21:59 -07:00
SteelT
c836d27448 Thrust player if they are under the UFO 2023-06-29 22:21:24 -07:00
Sal
7b98752b67 Merge branch 'refactor-mapthing' into 'master'
Read-only mapthing_t

See merge request KartKrew/Kart!1252
2023-06-14 00:07:42 +00:00
Sally Coolatta
9d80323a3a Read-only mapthing_t
Map things are writeable in Lua, which I am pretty certain is a mistake because mapthings are not sent over the network at all. I considered making them net-synced (it would be relatively easy), but it also aligns with another, more "philosophical" issue: Doom generally copies over properties from mapthing_t into mobj_t, and then only refers to it again when needing to respawn an object -- mapthing_t is not really intended to be referred to very often at runtime. At best it's slightly annoying since some objects rely on a spawnpoint for behavior changes, at worst it may make ACS more confusing in the future since Thing and Mobj tags are mixed together or less useful since they wouldn't be able to modify behaviors of objects that are based on args.

So I decided to solve these two issues at the same time; just treat mapthing_t as something to copy values from, like OG Doom does it. This basically just means that special and args are also part of the mobj now instead of the mapthing, which should fill any desire to edit this stuff from Lua, and reduces the number of instances where objects need to check for their spawnpoint to function properly.
2023-05-25 14:40:55 -04:00
AJ Martinez
df6c9cee73 Instashield: actually do height checks 2023-05-19 15:34:54 -07:00
AJ Martinez
18c45d8a8a WIP: Insta-"whip" 2023-05-16 23:36:38 -07:00
Sally Coolatta
6fa821b2d3 Local P_LineOpening result + traversal leniency
P_LineOpening results are stored in a locally made struct instead of being a bunch of disorganized globals.

Waypoint traversals can go thru 1 line, if it was blocked by step-up rules, for free, similar concept to sound-blocking lines in Doom.
2023-05-13 00:39:36 -04:00