Commit graph

1052 commits

Author SHA1 Message Date
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
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
d4a0cdd3c0 Sphere Box: use extravalue2 for sphere count
extravalue1 is already used by timer
2023-06-30 17:07:25 -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
4c30b84588 Fix "S" extending invincibility timer on hit 2023-06-30 01:23:37 -07:00
James R
609b0c0ae0 MT_FLOATINGITEM: check P_PlayerInPain before picking up power-ups 2023-06-30 00:46:52 -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
5a48dbc875 Merge branch 'dont-pickup-powerups' into 'master'
Don't pickup power-ups if you are flashing or (s)tumbling; fix Stumble damage floors

See merge request KartKrew/Kart!1314
2023-06-30 06:16:33 +00:00
James R
8b33c45cbd Fix Stumble damage floors damaging the player 2023-06-29 22:40:09 -07:00
James R
42f140399f Don't pickup power-ups if you are flashing or (s)tumbling 2023-06-29 22:39:51 -07:00
SteelT
a24e9bb19f Add basic Battle UFO object functionality 2023-06-29 19:49:17 -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
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
James R
919c669863 Drop power-ups when whipped
- Dropped power-ups become paper items (overloaded to
  store power-ups instead of items).
- The dropped power-up stores its remaining duration.
- The power-up can be picked up during any state.
  - If you already have the same kind of power-up, the
    duration is simply extended.
2023-06-27 02:08:07 -07:00
James R
ed262f780b Add majority of Super Flicky object functionality
Thinkers and most collision.

- 4 Super Flickys deploy from above the owner player, in
  a radius.
- Radius shrinks as Flickys descend.
- Flickys orbit their owner until coming within range of
  another player.
- The entire group of Flickys attack another player at
  once, with some delay between each.
- Flickys accelerate toward their target, constantly
  building speed.
- When a Flicky is both within a short radius of its
  target and the angle of momentum is narrowed toward the
  target, the Flicky will sharply accelerate to impale the
  target.
- When a Flicky is both outside of a long radius of its
  target and the angle of momentum is facing away from the
  target, the Flicky's momentum will be drastically cut in
  order to make it easier for the Flicky to turn around.
- After one of the Flickys in the group hits its target,
  all but one of the group is free to hunt a different
  target.
- A new target is chosen from a radius around the current
  target.
- Flickys can only target players who are not respawning
  and who have not already been attacked by another
  Flicky.
- Super Flickys can be blocked by a Guard. The Super
  Flicky shall have all its momentum reflected (strong
  knockback).
- Super Flickys can be insta-whipped. This shall have the
  same effect as a Guard, with the additional effect of
  knocking the 'Super' out of the Super Flicky.
- Non-Super Flickys are knocked back with gravity. After
  bouncing off the ground once, it regains flight and will
  continue to chase its target. However, it cannot damage
  the target. After 5 seconds, the Flicky regains Super
  state.
- The Flicky power-up is on a timer. After the timer
  expires, Flickys lose Super state and ascend back into
  the air (reverse of their initial descent).
- If the Super Flicky is not orbiting its target when it
  ascends, it retains all horizontal momentum during the
  ascent, 'flying off into the distance'.
2023-06-27 00:53:24 -07:00
AJ Martinez
c495106ee5 Ringbox: playtest fixups 2023-06-26 19:02:39 -07:00
AJ Martinez
0a6bac0dcc Ringbox: HUD, transform time define, ring-box-only, scaling rewards 2023-06-26 17:36:41 -07:00
AJ Martinez
45547607bd Ringbox: item respawn refactor + box visuals 2023-06-26 06:36:37 -07:00
AJ Martinez
41540ed9e5 WIP: Ring Box 2023-06-14 23:32:31 -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
AJ Martinez
04e3a9f4b9 Death tumble 2023-05-30 04:08:45 -07:00
AJ Martinez
136800ec23 When hit at -20 rings, die 2023-05-30 03:03:34 -07: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
2c44bafe74 Misc fixup 2023-05-19 23:43:53 -07:00
AJ Martinez
cac02bb01a Emerald fixups 2023-05-19 22:51:06 -07:00
AJ Martinez
9aa4a459ce Guard break, UFO instawhip 2023-05-19 18:45:27 -07:00
AJ Martinez
6f02923d89 Shield VFX 2023-05-19 17:59:47 -07:00
AJ Martinez
dadaab1817 Add guarding while ebraking with spheres 2023-05-19 01:53:14 -07:00
AJ Martinez
1b16b3f777 Instawhip: Damage sourcing and consistency fixes 2023-05-18 16:17:52 -07:00
toaster
12ecb1f7a4 P_DoPlayerExit changes
- Add flag application in function signature
    - Consistent gating of extra PF_NOCONTEST application behind not already exiting
        - This should fix dying after winning in K_Cooperative gametypes breaking things
- P_DoAllPlayersExit
    - Consistent condition of playeringame, spectator, exiting, etc checks
    - Also could force-give a life (for Battle Prisons)
2023-05-02 18:16:26 +01:00
Sally Coolatta
60e80d876d Improve quake effects
- Quake epicenter + radius now work.
- Since quake epicenter works, removed the display player check on all of the quakes, so other players can feel them.
- Multiple quake effects are stored in a linked list and dynamically created/freed, so they can stack together.
- Made in china
- Made the quake effects only work on the z axis.
- Quakes now alternate their intensity and dampen it over time, instead of randomly picking values.
- Added quake effects for offroad and stair-jank
- Disabled quakes in reducevfx
- Removed actionmovie and windowquake (sorry jartha)
2023-05-01 14:24:32 -04:00
Sally Coolatta
5b415de3fe Respawn Random Items in all modes 2023-04-29 13:47:38 -04:00
Sally Coolatta
92b8e38f11 Actual Ring Shooter functionality 2023-04-17 00:23:09 -04:00
Sally Coolatta
e7128baef0 Add UFO script type 2023-03-28 18:07:22 -04: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
Gunla
e5d4e2604e Merge branch 'fix-no-contest-after-win' into 'master'
Don't NO CONTEST a player who has already finished, if they die afterward

See merge request KartKrew/Kart!1073
2023-03-23 01:11:59 +00:00
toaster
01dbbc34d1 K_PopPlayerShield
- Split out from K_DropHnextList to make its handling more explicit, and to permit K_DropItems scenarioes to *not* drop shields.
- Always called on P_DamageMobj on any non DMG_STUMBLE damagetype, so shields always get digested on true pain.
    - Todo: Should shields be popped even on DMG_STING..?
- NOT called on Eggman Mark pickup.
- Add to Lua (alongside K_DropHnextList, which was inexplicably missing).
2023-03-21 13:48:30 +00:00
toaster
ae9a0b3ba2 P_DamageMobj: Correct typo so we keep shield only when damagetype is DMG_STUMBLE, not in every case BUT that 2023-03-21 13:03:45 +00:00
James R
1570661f20 Don't NO CONTEST a player who has already finished, if they die afterward 2023-03-20 21:49:50 -07:00
toaster
7d8fe85767 battleprisons rename compilation repair 2023-03-19 13:06:55 +00: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
toaster
78636bd8d9 MT_CDUFO: Play a more generic initial destruction sound, because the one we were using is also played for getting a life in GP. 2023-03-18 21:31:29 +00:00
James R
34e6ef5496 Merge branch 'special-stage-acs' into 'master'
ACS extensions for Special Stages

See merge request KartKrew/Kart!1036
2023-03-18 11:06:50 +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
b0a028c756 Jartha review: Use P_IsMissileOrKartItem for UCRP_HITMIDAIR instead of P_IsKartFieldItem directly 2023-03-17 13:03:19 +00:00