Commit graph

254 commits

Author SHA1 Message Date
AJ Martinez
1c633dd9ee Direct players to battle UFOs via Obj_PointPlayersToXY 2023-07-03 06:20:19 -04:00
Sally Coolatta
5067bb854a Split hitlag into its own file 2023-06-30 23:05:40 -07:00
Oni
0c94ce41eb Merge branch 'battle-ufo' into 'splitscreen-timer'
Battle: Power-up UFO

See merge request KartKrew/Kart!1308
2023-06-30 06:08:37 +00:00
James R
d8afc7597d Add K_FlingPaperItem, split off random thrust functionality
Battle UFO drops do not fling.
2023-06-29 22:22:00 -07:00
SteelT
06acc1c07f Spawn powerup orb on death
Spawns random powerup
2023-06-29 22:22:00 -07:00
SteelT
dae2142fbe Fix UFO beam spawn height on scaled maps 2023-06-29 22:22:00 -07:00
SteelT
6e33281baf Despawn UFO after touching the ground 2023-06-29 22:22:00 -07:00
SteelT
ad3c2e0b21 UFO spawns 250 units above the spawner instead 2023-06-29 22:21:28 -07:00
SteelT
bf394f1f38 UFO beam spawning behavior
- Spawned from underneath the UFO and is thrusted downwards
- Is spawned as splats instead of papersprites
- Colorized to sapphire
- Despawns on any ground contact
2023-06-29 22:21:28 -07:00
James R
f5d68783fc Battle UFO spawning behavior
- MT_BATTLEUFO_SPAWNER args[0] is the ID
- Spawn a random UFO from the list spawner at the start of
  Battle
- UFO spawns 200 units above the spawner
- After destroyig a UFO, wait 25 seconds before spawning
  the next UFO (next ID in the list)
2023-06-29 19:49:35 -07:00
James R
2ce05f018e Add g_battleufo global, add to netsave 2023-06-29 19:49:18 -07:00
SteelT
a24e9bb19f Add basic Battle UFO object functionality 2023-06-29 19:49:17 -07:00
James R
adaec93c44 Super Flicky: don't whip your own flickys 2023-06-29 19:41:11 -07:00
James R
6e80957e4f Super Flicky: fix erroneous timer past flicky exit 2023-06-29 19:41:11 -07:00
James R
da80096a67 Super Flicky: pad timer to compensate for exit time 2023-06-29 19:41:11 -07:00
James R
c01a29c42a Add Power-Up Aura
- Spawns on player when they use their first power-up
- Lasts as long as player has any power-up
- A hexagon of animated, additive, fullbright papersprites
  surround and move with the player, takes player's angle
2023-06-29 19:37:22 -07:00
James R
065475ea29 Add Bumper power-up, give 5 bumpers to the player 2023-06-29 19:31:27 -07:00
James R
e67ab6a116 Spawn Guard visual when player spawns, do not tie spawning to e-brake
Object already handles turning invisible if player has no
Guard.
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
AJ Martinez
e75c052e7b Force MT_RANDOMITEM to start S_RANDOMITEM in Prisons 2023-06-27 02:20:20 -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
c71bb7092e Merge remote-tracking branch 'origin/master' into ringbox 2023-06-26 19:19:21 -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
toaster
a9361020bf Re-add missing bobspeed/focusplayer initialisation 2023-06-20 21:52:50 +01:00
toaster
164f72a6cb "Bored" follower audience toggle (for Chaclon)
- If follower audience member has a certain flag, the bob/jump height is forced to zero
    - UDMF: args[2] & 2
    - Binary: The "Extra" flag
- If a follower audience member (or MT_EMBLEM with GE_FOLLOWER) has a bob/jump height of 0, use the idlestate instead of the movement state
2023-06-20 12:41:42 +01:00
James R
aa82d8da77 Instawhip Recharge VFX
- 3 splats spawn before the instawhip cooldown runs out
- Splats angle steeply outward in a triangle formation
- VFX is animated, animation runs out right when instawhip
  cooldown completely runs out
2023-06-18 01:57:03 -07:00
Sally Coolatta
7842032eee Split ringbox stuff from itembox stuff 2023-06-16 05:55:33 -04:00
toaster
fa10ff629f servant-hand.c 2023-06-15 19:39:55 +01:00
AJ Martinez
a18f84255b Ring Box items aren't real items 2023-06-14 23:59:45 -07:00
AJ Martinez
41540ed9e5 WIP: Ring Box 2023-06-14 23:32:31 -07:00
Sal
7d82d8cd0c Merge branch 'spb-shrink' into 'master'
Make SPB respond to player physics scale (resolves #560)

Closes #560

See merge request KartKrew/Kart!1276
2023-06-15 05:59:38 +00:00
Oni
ce2ea138b4 Merge branch 'gacha-rebound' into 'master'
Gachabom rebound

See merge request KartKrew/Kart!1286
2023-06-14 02:31:23 +00:00
Sal
0f909bdb46 Merge branch 'gacha-prep' into 'master'
Add FF_REVERSEANIM and FF_INVERT, extern P_InstaScale

See merge request KartKrew/Kart!1285
2023-06-14 00:25:50 +00: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
James R
696e9e09c9 Gachabom rebound
- Gachabom hits an object and is destroyed immediately
  (does not bounce off like Orbinauts or Jawz).
- Gachabom explosion spawns in its place.
- (New) Gachabom physically returns to the player who
  threw it.
2023-06-13 16:57:44 -07:00
James R
c50e63ccd7 p_mobj.c: add P_InstaScale function
Previously was in objects/broly.c
2023-06-13 14:42:00 -07:00
AJ Martinez
530dd293cd Tab fixes 2023-06-12 15:15:25 -07:00
AJ Martinez
2dcfd9542f Instawhip polish round bleven 2023-06-11 20:29:43 -07:00
AJ Martinez
c12ad72fff Instawhip "drop shadow" underlay 2023-06-11 18:41:32 -07:00
AJ Martinez
9be607e6e2 Make SPB respond to player physics scale 2023-06-07 00:51:06 -07:00
toaster
9e50fea2dc Now that Super Emerald minimap graphics are in the game, use them on the Sealed Star progression bar. 2023-05-30 13:30:22 +01:00
AJ Martinez
4c927b09d1 Review fixup 2023-05-28 15:12:08 -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
d9dda87586 Hide hitbox on nocollide whip 2023-05-20 16:30:35 -07:00
AJ Martinez
85bfd5be12 Really, really drop emeralds from monitors dead center on the ground 2023-05-20 02:53:13 -07:00
AJ Martinez
cac02bb01a Emerald fixups 2023-05-19 22:51:06 -07:00
AJ Martinez
bfcc453d56 Guard Break FX 2023-05-19 21:14:47 -07:00
AJ Martinez
9aa4a459ce Guard break, UFO instawhip 2023-05-19 18:45:27 -07:00