Commit graph

45 commits

Author SHA1 Message Date
Eidolon
ffc1300146 Fix indeterminate behavior from RNG use in function argument lists 2025-08-30 18:39:34 -05:00
VelocitOni
c8ba383f22 SPB intangibility call fixes
SPB is intangible when "flashing" now, as in flashing WHITE during it's 'give up' LOL (this never happened before, it was purely visual, so my check was useless). SPB intangibility also now checks for just 0 instead of flashing. Works.
2025-08-03 17:52:14 -04:00
VelocitOni
c83decd4a2 Put the if statement where its actually happening
Moved the if statement to where the functions are actually being called for sliptide and 'dust'
2025-08-03 16:31:27 -04:00
VelocitOni
06d2843114 If *not*, not if...
I am an artist, not a coder
2025-08-03 15:58:29 -04:00
VelocitOni
211452456d Use SPB_intangible instead
Smaller if, catches more, put on the red tether dust too
2025-08-03 15:52:37 -04:00
VelocitOni
c6deb0a7b0 If "spb_swapcount" is GREATER than maxswaps, kill damaging stuff
I can make 200 frame sakuga animations but I can't read a simple statement
2025-08-03 14:59:07 -04:00
VelocitOni
1f14ac76bc Flip sign around
This might've meant it was still spawning sliptides when giving up after too much hot potato
2025-08-03 13:53:54 -04:00
VelocitOni
64592326ec SPB Sliptide disabled during SPBHotPotato
S.P.B.'s sliptide dust should be disabled during both regular target swapping & it's death animation; we've never actually seen the intended metagame of this as a result in Ring Racers. EVER.
2025-08-03 01:53:51 -04:00
Eidolon
a4d304a1f5 Update copyright years to 2025 2025-02-13 15:32:26 -06:00
Sally Coolatta
747f09852d SRB2 -> DRRR copyright in objects folder 2024-04-05 10:26:52 -04:00
James R
9c436763c2 SPB: only stop thinking if chase targt hitlag is >0
- Mobjs only actually freeze if hitlag >0
- This will probably stop something like 061e3c282
  happening to SPB again
2024-03-08 06:10:45 -08:00
James R
ba2a49c58d Waypoints: thingarg3 is SPB speed (0-100)
- thingarg3 = 0 -- same as 100 (default speed)
- thingarg3 = 1 -- extremely slow
- thingarg3 = 50 -- half speed
2024-02-27 19:07:28 -08:00
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