Commit graph

1218 commits

Author SHA1 Message Date
James R
cd2219f605 P_PlayerRingBurst: check player->curshield directly, handles Garden Top correctly 2023-11-14 20:32:22 -08:00
James R
61cad641bb Invincible player punts hazardous/solid things, unless MF_ELEMENTAL
If player is in one of these states:

- Invincibility
- Grow (K_IsBigger)
- Flame Shield dash
- Over 200% speed

And the other object:

- Does not have MF_DONTPUNT

Then, touching a solid object:

- Punts the object, unless the object has MF_ELEMENTAL
- Fizzles the object, if the object has MF_ELEMENTAL

Or, when an object damages the player:

- That object is punted, unless it has MF_ELEMENTAL
- The object fizzles, if it has MF_ELEMENTAL

Punting means:

- A copy of the object is made
- Both the player and copy receive 5 tics of hitlag
- The copy is thrust away from the player at a minimum of
  60 FU, or 2x either the player's or object's momentum,
  whichever is ultimately greater
- The copy despawns after 2 seconds
- The copy flickers constantly, while thrust away

Fizzling means:

- The object disappears completely
- A puff of smoke is spawned in place of the object
- No hitlag is applied to the player

Both punting and fizzling:

- Hide the original object (intangible and invisible)
- The original object reppears after 30 seconds
- For 2 seconds before reappearing, the object flickers
  back in, but is still intangible
2023-11-13 22:18:35 -08:00
James R
39a7c3b3ad Remove MF_MONITOR 2023-11-13 19:23:54 -08:00
toaster
4f5997fbe6 Make players die in deathpits in GTR_CHECKPOINTS 2023-11-13 16:28:54 +00:00
toaster
83cf97bdad Fix Tutorial's automatic death-to-retry pipeline
Also makes PF_ELIMINATED work in non-bumpers gametypes... it wasn't gametyperule-dependent previously so Elimination could use it one day, and it doesn't break Sealed Stars to do it this way
2023-11-13 16:27:04 +00:00
toaster
3805a4d5f0 Adjust Prison followers based on feedback...
- Exist for 1.5 seconds before disappearing
    - Flickers away in the last half second
- Twice as many spawned, at half the size
- Different arc
    - Severely reduced gravity
    - Don't jump if they hypothetically touch the floor
2023-11-12 23:51:44 +00:00
toaster
9e49f761b0 Prison Egg polish: Spawn three Followers on hit
- Selected from the mapheader's Audience list
    - Since most Prison Break maps don't have Audience lists set, you'll be seeing a lot of Flicky/Motobuddy/Chao for now
- Yes, these will disappear in deathpits like in Sky Chase
- Intentionally did not do this for the CD Special Stage UFO
2023-11-12 22:43:07 +00:00
toaster
5cab2401b6 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into catholic-vfx 2023-11-12 16:24:47 +00:00
AJ Martinez
06bc06869c Lite Steer profile option, itemstate pflags -> player.itemflags 2023-11-09 17:29:26 -07:00
AJ Martinez
954bd85139 WIP: Trickpanel crack experiments 2023-11-08 01:52:07 -07:00
toaster
239388a1fa Add TRICKSTATE_ constants
Replaces the magic numpers <-- typo I have left in for posterity
2023-11-07 23:06:50 +00:00
toaster
5ffae81b08 Trick Indicator first pass
The author of this commit doesn't know what it's doing
2023-11-06 01:13:13 +00:00
toaster
ccbcd203dd Adjust PlayerPointerRemove macros + associated to check validity before removal 2023-11-06 01:11:29 +00:00
Oni
ef8c472a51 Merge branch 'failsafe-input-check' into 'master'
Failsafe fixes

See merge request KartKrew/Kart!1599
2023-11-05 21:53:57 +00:00
AJ Martinez
7ba7e2b076 Prevent failsafe briefly after taking damage 2023-11-04 23:42:26 -07:00
toaster
4bc8f80d64 MT_FLOATINGITEM: Don't pick (back?) up immediately
Happened very frequently with Blend Eye
2023-10-31 22:17:21 +00:00
toaster
71d301779b Blend Eye Hardcode part EX: Code the rest of the owl 2023-10-31 21:47:18 +00:00
toaster
7e362b1ee8 MT_BLENDEYE_PUYO, MT_SPIKEDTARGET: Hardcode simple thinkers/init/death behaviour 2023-10-30 00:13:03 +00:00
toaster
388b14e956 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into will-it-blend
# Conflicts:
#	src/k_podium.c
2023-10-29 12:36:30 +00:00
Oni
f5c1180095 Merge branch 'turn-solver-leniency' into 'master'
Sliptide/drift exit cleanup

See merge request KartKrew/Kart!1576
2023-10-29 06:08:22 +00:00
toaster
c72fcca57e Adjust the circumstances players can get lives in GP contexts
- Permit awarding in A_ForceWin
    - Set var1 to 1 to do so
- More tightly restrict against awarding in GPEVENT_SPECIAL specifically
2023-10-25 17:45:58 +01:00
toaster
4e2cc4bc34 MT_RANDOMITEM: Fixes relevant to Blend Eye development
- Custom Mace system
    - Change the OTHER MF2_ that MT_RANDOMITEM uses to also not conflict with the sound-creating property
    - Support being counted for the P_RespawnBattleBoxes system
- If there's only one Random Item on the course, have an extra delay before its respawn is forced
- More prevention of S_RINGBOX1 set in GTR_SPHERES
- Fix potential state issue for Ring Box conversion
2023-10-24 23:10:17 +01:00
toaster
c27e733985 P_DamageMobj changes for MF_BOSS
- Track round condition target damage, for potential future challenges
- Disable whip collision to prevent buzzsaw behaviour
2023-10-24 23:10:16 +01:00
AJ Martinez
be1ce929c7 Fix time-increment overlap in prisons 2023-10-24 02:15:19 -07:00
AJ Martinez
dbe25d8be4 Fix Prisons difficulty to respond to GP settings 2023-10-23 19:55:54 -07:00
AJ Martinez
5cdedd53ba Prisons: respond to game difficulty 2023-10-22 17:16:04 -07:00
AJ Martinez
6ad7c7692c Sliptide/drift exit cleanup 2023-10-21 19:50:21 -07:00
Oni
9c585e35de Merge branch 'fix-cheese' into 'master'
Fix perma ring box anticheese

See merge request KartKrew/Kart!1572
2023-10-22 00:06:16 +00:00
AJ Martinez
bb263114f0 Wrong Perma Ring Box flag for anticheese 2023-10-21 17:05:47 -07:00
toaster
7604235c00 Self-review: Fix inverted before-exiting check for FellOff 2023-10-20 16:22:45 +01:00
AJ Martinez
7b1c6a615c Fix perma ring box anticheese 2023-10-20 00:39:32 -07:00
toaster
6211c0b222 UCRP_GIANTRACERSHRUNKENORBI
"hit a giant racer with a shrunken Orbinaut"
Does what it says on the tin
2023-10-19 18:43:40 +01:00
toaster
0478d9a2e3 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into break-through-them-all 2023-10-19 17:32:35 +01:00
toaster
5680e00deb P_TrackRoundConditionTargetDamage, Obj_SpecialUFODamage: Fix incorrect non-g_localplayers indexing into player table
Destroying the UFO has now been promoted to a full deferred condition check
2023-10-19 16:38:50 +01:00
toaster
0f06807c65 UCRP_HITMIDAIR: Don't count hitting yourself 2023-10-18 02:05:33 +01:00
toaster
83acdaa0cf UCRP_HITDRAFTERLOOKBACK
"hit a racer drafting off you while looking back at them"
Self-explanatory set of conditions
Wrote a commented out more compicated check for valid angles between player and target, but lastdraft probably is good enough for these purpses
2023-10-18 02:05:12 +01:00
toaster
065fc0b89c UCRP_RETURNMARKTOSENDER: Don't fire checkthisframe if it's already true 2023-10-18 01:57:57 +01:00
toaster
417afd0ac9 UCRP_FALLOFF, UCRP_TOUCHOFFROAD, UCRP_TOUCHSNEAKERPANEL, UCRP_RINGDEBT: Don't flag if it happens to the player after they exit
UCRP_FALLOFF, // Fall off (or don't)
 UCRP_TOUCHOFFROAD, // Touch offroad (or don't)
 UCRP_TOUCHSNEAKERPANEL, // Either touch sneaker panel (or don't)
 UCRP_RINGDEBT, // Go into debt (or don't)
2023-10-18 00:27:44 +01:00
toaster
acad8754c8 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into break-through-them-all 2023-10-17 23:32:08 +01: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
toaster
3e494a342c UCRP_GACHABOMMISER
Break a target (Prison Egg/UFO) using exactly one Gachabom again and again
Becomes invalid if an Insta-Whip collides with a target, or you throw two at the same time
2023-10-17 21:09:22 +01:00
toaster
01b97cb829 Update UCRP_UFOATTACKMETHOD into UCRP_TARGETATTACKMETHOD
Supports Prison Eggs and Gachabom now as well.
For the original behaviour, combine with the new UCRP_SMASHUFO.
2023-10-17 21:03:20 +01:00
toaster
b91823540b UC_PRISONEGGCD: Don't use K_FlipFromObject, this was heinously incorrect 2023-10-17 20:57:19 +01:00
toaster
f0d1813752 UCRP_TRACKHAZARD: Optimise implementation to not be 100 booleans
Much like player->availabilities, use a set of bits on UINT8.
2023-10-16 18:04:23 +01:00
toaster
d4e3d8433d UCRP_TRACKHAZARD
A series of 100 booleans on the roundconditions struct, one per possible lap.
Allows for a full suite of track hazard touching conditions - see the following examples.

- `Condition1 = Prefix_IsMap RR_MOTOBUGMOTORWAY
- `Condition1 = TrackHazard No`
- `Condition1 = IsMap RR_MOTOBUGMOTORWAY`
    - "MOTOBUG MOTORWAY: Don't touch any track hazard"
- `Condition1 = Prefix_GrandPrix`
- `Condition1 = IsMap RR_HARDBOILEDSTADIUM`
- `Condition1 = TrackHazard Yes`
- `Condition1 = And`
- `Condition1 = FinishPlace 1`
    - "GRAND PRIX: On HARD-BOILED STADIUM, touch a track hazard every lap & finish in 1st"
- `Condition1 = Prefix IsMap RR_DEATHEGG`
- `Condition1 = Trackhazard No 8`
    - "DEATH EGG ZONE: Don't touch any track hazard on lap 8"
- `Condition1 = Prefix_IsMap RR_SPEEDHIGHWAY
- `Condition1 = TrackHazard No Final`
    - "SPEED HIGHWAY: Don't touch any track hazard on the final lap"
2023-10-16 17:09:12 +01:00
toaster
3c5e03428a UCRP_HITMIDAIR: Fix typo for object type check 2023-10-16 15:48:08 +01:00
AJ Martinez
53a001da08 Fix visual type desync on respawned battle items 2023-10-15 18:03:53 -07:00
AJ Martinez
1eab3a6838 More whip tuning 2023-10-14 16:09:21 -07:00
toaster
eeefb7beae Prison Egg CD drop: Visual polish
- Initial launch
    - Spin faster
    - Spawn closer to the center of the Prison Egg
- Pickup animation
    - Inspired by those star panels you had to use Flight Formation's Rocket Shoot into in Heroes
- Semibright under regular conditions
2023-10-13 18:35:07 +01:00
AJ Martinez
3e5a5baf50 Charge instawhip QoL 2023-10-13 02:48:28 -07:00