Commit graph

33 commits

Author SHA1 Message Date
toaster
7703c1999f Obj_SPBEradicateCapsules: Only autodestroy if the type is KITEM_SPB 2023-12-22 19:30:22 +00:00
toaster
c34b5f6034 SPB Capsule improvements
- Destroy all SPB Capsules in the stage when an SPB becomes relevant
    - When an SPB is put in a player's roulette
    - When an SPB is thrown
        - Automatically happens when SPB Capsule is touched
- Don't respawn a popped SPB Capsule while an SPB is out
2023-12-08 22:24:38 +00:00
toaster
9e1aec4298 UCRP_RETURNMARKTOSENDER
"when cursed with Eggmark, blow up the racer responsible"
Just a simple condition. Either it happens or it doesn't.
MT_SPBEXPLOSION now tracks whether it was made by KITEM_EGGMAN or KITEM_SPB, too!
2023-10-17 22:25:47 +01:00
AJ Martinez
291eef55c4 On higher gamespeeds, increase SPB target distance 2023-07-01 19:20:42 -07:00
AJ Martinez
9be607e6e2 Make SPB respond to player physics scale 2023-06-07 00:51:06 -07:00
James R
71626dbc76 K_GetBestWaypointForMobj: add a hint argument
The hint argument is a known nearby waypoint that can be
used to optimize the waypoint search.
2023-03-31 01:41:31 -07:00
Chromatian Keiske
ada076a5cb Merge branch 'fix-non-player-chasing-spb' into 'master'
Fix SPB chase crashing if not chasing a player

Closes #484

See merge request KartKrew/Kart!1079
2023-03-23 08:31:19 +00:00
James R
7cd6f54882 Fix SPB chase crashing if not chasing a player 2023-03-22 15:04:43 -07: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
AJ Martinez
79d8e4e109 WIP: SPB Attack - temp menu draws OOB, no unlocks 2023-03-03 12:14:58 -08: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
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
9d350c64c8 Allow SPB to attack the UFO properly 2022-12-19 04:49:53 -05:00
AJ Martinez
224bd9baf3 Don't DEVELOP guard spbtest 2022-10-02 04:12:03 -07:00
AJ Martinez
6a7c5050ad Restore SPB force-seek define as 'spbtest' cvar 2022-10-01 21:46:26 -07:00
toaster
5c36e72115 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into rng-states-2
# Conflicts:
#	src/p_enemy.c
2022-09-24 20:29:53 +01:00
AJ Martinez
9ecd5b9c4b Add shockwave support to K_SpawnDriftElectricSparks 2022-09-23 22:14:10 -07:00
AJ Martinez
3501ca7976 Match gate animation to Chengi's new visuals 2022-09-23 17:44:22 -07:00
Sally Coolatta
362bef7b3a Add new gate sounds 2022-09-23 17:19:15 -04:00
Sally Coolatta
0bd280a29c Fix SPB dust
- Fix sliptide not using sliptide states
- Fix dust not dealing damage
2022-09-23 16:44:21 -04:00
Sally Coolatta
8b160a996b SPB circles in place if it goes past on accident 2022-09-23 16:00:35 -04:00
Sally Coolatta
f89d8d15c2 Properly separate SPB & Shrink cooldowns
Also refactors some of the result -> type & amount code
2022-09-23 03:35:18 -04:00
Sally Coolatta
9fa4654776 Turn off seek test again 2022-09-21 17:23:55 -04:00
Sally Coolatta
f02b67eae6 Add seeking sounds 2022-09-21 14:57:33 -04:00
Sally Coolatta
d7ce973aaf Only spawn gates when SPB is close to the ground 2022-09-21 12:23:42 -04:00
Sally Coolatta
f4dddf0385 Properly run ahead in fuse state 2022-09-21 11:59:59 -04:00
Sally Coolatta
a790ffee79 The little SPB tweaks
- Explosion strength scales with how long you've been outrunning it. 0 seconds is even more punishing than it was before, while surviving 60+ seconds converts the damage into minimal stumble.
- When it starts properly chasing a new target, it will be intangible for 1 second
- Hot potato takes 2 seconds instead of 7
- Too much hot potato will make it run ahead & explode (untested)
2022-09-21 11:51:16 -04:00
Sally Coolatta
eaf232302f Turn off the seek test 2022-09-21 07:12:16 -04:00
Sally Coolatta
dd94b1449e Juicebox gates forward port for SPB 2022-09-21 07:05:26 -04:00
Sally Coolatta
3c26a2f19b Increase seeking speed 2022-09-21 02:49:37 -04:00
Sally Coolatta
03effa44e5 Fix spb.c header 2022-09-21 02:13:57 -04:00
Sally Coolatta
5767315787 SPB in its own file + better waypoint movement 2022-09-18 01:07:46 -04:00