Commit graph

150 commits

Author SHA1 Message Date
James R
f93aa07dd7 Halve Garden Top speed
This is probably more correct because it would thrust 2x
speed in a straight line before.
2023-03-21 00:30:52 -07: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
3d786646bf Merge branch 'fix-sneaker-ufo' into 'master'
Reset stacked sneaker counter when hitting UFO

See merge request KartKrew/Kart!1043
2023-03-16 12:14:21 +00:00
toaster
5c4044a943 Merge branch 'ufo-stumble' into 'master'
Non-damaging UFO-player collision

See merge request KartKrew/Kart!1042
2023-03-16 12:14:04 +00:00
Sally Coolatta
c8ccb13614 Add additional script types
- POSITION: Runs when POSITION period ends. Has no activator.
- OVERTIME: Runs when the time limit runs out. Has no activator.
- EMERALD: Runs when the Special Stage UFO's Chaos Emerald is grabbed. The activator object is set to the player that grabbed it.
2023-03-14 08:02:57 -04:00
James R
9652b5a860 Reset stacked sneaker counter when hitting UFO 2023-03-13 00:28:50 -07:00
James R
b405e88ec3 Non-damaging UFO-player collision
- UFO is always solid.
- Adds a height check if the player is no boosting.
- Stumbles if the player is within a 60 degree cone of the
  direction the UFO is moving. (Only applies if not
  boosting.)
2023-03-12 23:42:14 -07:00
James R
e5e23e788a Remove hitlag threshold condition from items
This condition blocked items from doing damage after just
being thrown. The intention was to not let shotgun Ballhog
instakill the player. This is now prevented by
MF2_ALREADYHIT instead.

blame cab1af549
2023-03-11 05:39:07 -08:00
AJ Martinez
79d8e4e109 WIP: SPB Attack - temp menu draws OOB, no unlocks 2023-03-03 12:14:58 -08:00
toaster
4e9d2295c9 Obj_OrbinautJawzMoveHeld: Make loop iteration less fragile
MF_NOCLIPTHING is no longer enough to prevent the object from being removed.
All calls which can delete the object should now be handled more thoroughly.
2023-03-01 19:03:46 +00:00
James R
8bd83b69c3 Spawn MT_LOOPENDPOINT and MT_LOOPCENTERPOINT mapthings 2023-02-28 20:27:11 -08:00
James R
7738d6bb7c Activate loop endpoints 2023-02-28 20:27:11 -08:00
SteelT
43b88b9d29 Buff the damage given to battle monitors when in spring grease state 2023-02-27 21:41:07 -08:00
Oni
42dc2a1bfd Merge branch 'keep-powerups-in-midair' into 'master'
Make powerup timers less frustrating

See merge request KartKrew/Kart!981
2023-02-27 07:04:27 +00:00
AJ Martinez
2cbc035411 Make Grow less irritating (allow stack, don't insta strip from shrink) 2023-02-26 17:25:28 -07:00
AJ Martinez
d9051b3dd1 Fix demo sync for Magicican UFO hits 2023-02-25 03:38:57 -07:00
AJ Martinez
63c8c1bdab Rerandomize SF_IRONMAN on UFO hit 2023-02-24 01:21:46 -07:00
AJ Martinez
fa73500787 More UFO FX 2023-02-22 01:09:34 -07:00
James R
1f496e05ec Refactor objects/orbinaut.c for Gacha Bom
- Add flags variable to toggle much of Orbinaut behavior.
- Don't spawn afterimages for Gacha Bom.
- Animate facing angle of Gacha Bom when thrown backward.
- Let tossed Gacha Bom drive forward after landing.
2023-02-20 20:57:17 -08:00
James R
ebcab0fac0 Remove Garden Top grounded arrow 2023-02-18 22:10:58 -08:00
James R
b1fac18844 Add Garden Top arrows
Two arrows. One above the player, floating. One below the
player, on the ground.

Both arrows use the player's facing angle. Arrows are only
visible to their own player (other players can't see them).

The floating arrow is a papersprite. You can see the arrow
turn with you as you turn your camera.

The grounded arrow is a splat with additive blending. It
tilts to match the slope of the ground you're driving on.
2023-02-18 03:15:04 -08:00
AJ Martinez
0eba5c5a74 Fix UFO hum level clamping 2023-01-19 15:56:36 -07:00
AJ Martinez
3165deb43b Clamp UFO hum SFX to safe values 2023-01-19 15:41:10 -07:00
AJ Martinez
eebce28b7e Fix bad loop on UFO pinch hit hums 2023-01-18 02:59:46 -07:00
AJ Martinez
5837f983e8 Add UFO hum + hit reaction SFX 2023-01-18 02:15:18 -07:00
James R
7ce12f37dc Spawn Battle monitors
- Item count has always scaled up with player count. Items
spawn every N tics. Previously, these items were evenly
distributed across all item spots. Now, only one monitor
is spawned at a time and the number of items inside scales
up.

- Emeralds spawn inside of monitors instead of loosely.
- Sphere boxes should spawn in the same way as before.

- Once a monitor has been spawned at an item spot, no more
monitors can be spawned there until that one is destroyed.
There's an additional delay of one spawn interval before
a monitor can be spawned in that location again. This is
so a monitor cannot ever instantly spawn back if one is
destroyed at just the right time.
2023-01-03 05:31:30 -08:00
James R
3491bd0b1d Add Battle monitors
- Includes a struct definition for symmetrical objects
made out of papersprite sides.
- Dimensions of papersprite sides are looked up using
sprite cache.

- Monitors may contain multiple types of items.
- Item RNG is deterministic from the time the monitor is
spawned but the item types are not stored in memory.
Instead the RNG seed is restored every time an item type
needs to be determined. Item types need to be determined
every time the icon on the monitor's screen changes and
when the monitor is popped and drops all its items.
- Monitors sparkle like emeralds if there is an emerald
inside.

- Monitors take damage from players simply bumping into
them. The damage scales up with speed and weight.
- Activating a lightning shield in proximity decimates the
monitor into being able to be destroyed in one hit by
anything thereafter.
- All throwable / deployable items destroy a monitor in
one hit.
2023-01-03 05:31:30 -08:00
Oni
e400625da8 Merge branch 'broly-sigfpe' into 'master'
Fix Broly SIGFPE

See merge request KartKrew/Kart!841
2023-01-03 02:49:58 +00:00
toaster
881507889d Fix Broly SIGFPE
- Don't spawn the KI if the duration <= 0
- If the KI spawned but the duration <= 0 for any other reason remove the object instead of performing the division
2022-12-29 17:54:19 +00:00
toaster
df3624d96c Executor calls for UFO Catcher special events
Requested by Charyb.
- LE_PINCHPHASE (-2 or 65534) for busting open the Catcher
- LE_BOSSDEAD (-4 or 65532) for grabbing the emerald
Would like to use args for UDMF compatibility but there is no spawnpoint for the Catcher so it's hardcoded for now
2022-12-29 17:44:19 +00:00
toaster
7482e11992 SPB special stage experiment
If you smuggle an SPB to after the death of the UFO Catcher, spawn a single, free-on-straightways manta ring before it blows up.
Testing shows that you can get hit by the SPB's explosion only if you use the free manta ring just before a sneaker panel... but also Sal thinks it's cool and I think it adds depth
2022-12-28 23:35:27 +00:00
toaster
e45282bdff K_GetPossibleSpecialTarget()
* Standardises conditions under which the UFO Catcher can be "targeted" (Jawz, SPB, tether)
* Makes SPBs explode a little ahead of driving distance if UFO Catcher is no longer targetable
2022-12-28 23:31:46 +00:00
toaster
15587417c7 Coherency changes to special stage behaviour in anticipation of timeattack support
* Make everyone PF_NOCONTEST (but not explode) if the UFO/emerald reaches the end of its waypoint path.
    - Possibly temporary: Make the UFO/emerald go straight up at its final waypoint
* If you have PF_NOCONTEST, K_IsPlayerLosing is true
* If special stage in action and the only reason you'd be behind is your position, nobody loses
* Never eliminate last in special stage
* Time Over funny camera no longer occurs when PF_NOCONTEST but not dead
2022-12-27 22:24:18 +00:00
toaster
17dd15b998 "Special Mode" (Sealed Stars) and "Versus Mode" (bosses) are now gametypes
* The existing structs are now exclusively for handling extra data.
    * `specialStage` has been renamed to `specialstageinfo`, to reflect that it is not the sole arbiter.
    * `specialstageinfo.valid` and `bossinfo.valid` are what must be checked before grabbing data from either struct.
        * These are turned on when the gametype extra data is successfully initialised, not on map start.
            * `K_InitBossHealthBar(...)` for `bossinfo.valid`
            * `K_InitSpecialStage(void)` for `specialstageinfo.valid`
        * `K_CanChangeRules(...)` no longer checks these
    * No longer uses duplicate encore information.
* The map command (and -warp) now guesses gametype using a general `G_GuessGametypeByTOL(UINT32)` function
    * Grabs the first gametype with an overlap between the requested TOL and the gametype's TOL.
* The cool Versus-specific intro is now checked via `K_CheckBossIntro()`.
2022-12-26 23:06:24 +00:00
Sally Coolatta
82df346417 Merge branch 'master' into special-stages 2022-12-22 05:18:56 -05:00
Sally Coolatta
19fd6d12e2 Rebalance Jawz
Jawz have their old missable handling, but now deal more damage.
2022-12-20 19:53:19 -05:00
Sally Coolatta
5461abb022 Always update ufo_pieces if possible 2022-12-20 19:51:24 -05:00
Sally Coolatta
9d350c64c8 Allow SPB to attack the UFO properly 2022-12-19 04:49:53 -05:00
Sally Coolatta
7427daf7ad Jawz uses Battle's steering in Special Stages
Makes it miss the UFO's erratic movement less often
2022-12-19 02:10:11 -05:00
Sally Coolatta
630e5d4cf1 Add less speed when damaging the UFO.
Brings it back to old behavior before speed increase
2022-12-19 02:00:46 -05:00
Sally Coolatta
a7ff0afc8b Merge branch 'master' into capsules-improvement 2022-12-19 01:12:07 -05:00
Sally Coolatta
f89027e95e Fix it speeding off too fast at the start now 2022-12-18 04:45:20 -05:00
Sally Coolatta
5f005cb9a7 Bananas deal 30 damage instead of default of 10 2022-12-18 03:31:47 -05:00
Sally Coolatta
ad005f461e Increase UFO base speed 2022-12-18 03:30:57 -05:00
Sally Coolatta
a6e1731538 Merge branch 'master' into special-stages 2022-12-18 01:12:17 -05:00
Sal
60d2f250b7 Merge branch 'broly-ease' into 'master'
Use sinusoidial interpolation for Broly ki

See merge request KartKrew/Kart!811
2022-12-17 23:44:16 +00:00
Sally Coolatta
f51a913710 Add stem 2022-12-15 23:17:40 -05:00
Sally Coolatta
6b78cd2428 Adjust UFO pieces 2022-12-15 23:17:39 -05:00
Sally Coolatta
a524422071 First pass on UFO visuals 2022-12-15 23:17:38 -05:00
Sally Coolatta
2c5df772c8 Prevent possible overflow, just in case 2022-12-15 23:16:28 -05:00