Commit graph

846 commits

Author SHA1 Message Date
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
AJ Martinez
49fb2fe6b6 WIP: Trick Panel crack 2023-11-07 03:46:11 -07: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
AJ Martinez
7ba7e2b076 Prevent failsafe briefly after taking damage 2023-11-04 23:42:26 -07:00
toaster
ce93667fce GTR_CHECKPOINTS: Players will now respawn at Starposts
In addition, tighten up the handling for player angle at spawn time
2023-11-04 23:03:25 +00:00
AJ Martinez
4db18b1225 Easier ballhog tapfire 2023-11-03 22:51:14 -07:00
Oni
bb537b8de9 Merge branch 'bot-controller' into 'master'
Revamped Bot Controllers

See merge request KartKrew/Kart!1574
2023-10-24 01:03:01 +00:00
Sally Coolatta
de9780ab3f Bot controller is stored on the sector now
- Moved destination tag off of linedef tag and into args.
- Bot controller values can be changed mid-level with ACS. (Linedefs using type 2004 will still be activated on level load.)
- Add flag to make bots fastfall
2023-10-21 03:36:26 -04:00
James R
0e57da56b0 Loop camera
It zooms out, pans to the side and toward the player.

Loop Center thing:

- arg2: zoom-out speed in tics (zooms out when entering the loop)
- arg3: zoom-in speed in tics (zooms in when exiting the loop)
- arg4: zoom-out distance in fracunits (multiply by 65536)
- arg5: angle to pan to the side of the loop in degrees fracunits (multiply by 65536)
  - This will be flipped depending on where the camera was
    facing before entering the loop.
- arg6: panning speed in degrees fracunits (multiply by 65536)
- arg7: panning acceleration in tics (camera gradually pans to side of loop)
- arg8: panning deceleration in tics (camera gradually pans back to normal)
2023-10-20 03:44:53 -07:00
toaster
42233cfb9e UCRP_GROWCONSECUTIVEBEAMS
- Condition1 = GrowConsecutiveBeams 4
- "touch the blue beams from your own Shrink at least 4 times before returning to normal size
2023-10-19 19:44:37 +01: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
AJ Martinez
f0d0a0f07b Reset player lap when they reset to track 2023-10-17 22:18:49 -07:00
AJ Martinez
5235408b0e Update respawn waypoint on fastfall bounce 2023-10-17 21:31:20 -07:00
toaster
a6ef8d357c UCRP_DRAFTDURATION
"consistently draft off other racers for [parameter] seconds"
Actually counts leniency tics too, but if the leniency hits 0 it gets reset.
2023-10-18 02:32:46 +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
a7940684f6 UCRP_WHIPHYUU
Insta-Whip another racer while you yourself are invisible from Hyuudoro, it's shrimple
Also updates the phrasing used for UCRP_TRIPWIREHYUU to match ("afflicted by Hyudoro")
2023-10-18 01:18:34 +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
fa2e54dd13 UCRP_FAULTED
- `Condition1 = Faulted Yes`
    - `FAULT during POSITION`
    - for example, combine with "& finish in 1st"
- `Condition1 = Faulted No`
    - `don't FAULT during POSITION`
2023-10-17 23:21:47 +01:00
toaster
90a65220b2 UCRP_FALLOFF, UCRP_TOUCHOFFROAD, UCRP_TOUCHSNEAKERPANEL, UCRP_RINGDEBT: Only evaluate the "false" case if the player is exiting or has PF_NOCONTEST 2023-10-17 23:20:16 +01:00
toaster
35ca8e6191 UCRP_SPEEDOMETER
Provide a percentage between 100 and 999 inclusive.
Reach that speed on the speedometer at any point during the race to achieve the condition.
2023-10-17 22:53:40 +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
d11fe78e90 UCRP_UFOATTACKMETHOD
`Condition1 = UfoAttackMethod [type]`
    - "smash a UFO Catcher using only [type]"
        - Combine with `Prefix_SealedStar` or `Prefix_IsMap [special stage stage]`
        - Shows up as "???"
    - Types supported:
        - `Boost` - "boost power" (sneakers)
        - `Whip` - "Insta-Whip"
        - `Banana` - "Bananas"
        - `Orbinaut`- "Orbinauts"
        - `Jawz` - "Jawz"
        - `SPB` - "Self Propelled Bombs"
    - Other types could be added on request, these were just the easy ones

In addition, the prototype for P_MobjWasRemoved was moved to `p_mobj.h`.
It's EXTREMELY important that we're able to safely check mobj pointers anywhere a mobj_t is possible to observe, without including the full `p_local.h`...
2023-10-17 01:07:03 +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
James R
428106c014 Loops: correct origin point over duration of loop
- Players moving into a gate with a lot of momentum would
  offset the origin point from its intended position
- Find intersection of player movement and gate
- Correct origin point between loop entry and exit by
  interpolating the difference between player position on
  entry and intersection point
2023-10-14 21:28:10 -07:00
AJ Martinez
b67aa8af4f Charge instawhip test fixups 2 2023-10-14 05:56:42 -07:00
AJ Martinez
a9ec1cea68 WIP: Instawhip charge input 2023-10-13 02:23:28 -07:00
toaster
a68a0b0135 All other modified files: Trailing whitespace cleanup 2023-09-26 22:51:58 +01:00
toaster
bee1cb9a04 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into rideroid-hardcode
# Conflicts:
#	src/sounds.c
2023-09-26 21:39:19 +01:00
Lat
32620fbb4f Fix these godforsaken rideroids 2023-09-24 13:57:42 +02:00
Sally Coolatta
c6897688d0 Delay ring burst after damage 2023-09-23 10:42:00 -04:00
Lat
058a1c03b5 Seasaw defs, variables + new function to sanitize checks for my hardcoded mess 2023-09-23 12:48:52 +02:00
AJ Martinez
cb5f3f5b69 When respawning, return to first waypoint with consistent time 2023-09-22 19:54:22 -07:00
Lat
a565d923c0 Hardcode these cursed seasaws 2023-09-22 18:14:38 +02:00
Lat
fb91a9a0f7 DLZ rocket hardcode 2023-09-21 15:42:10 +02:00
Lat
02409c5540 Define DLZ objects/player variables 2023-09-21 09:24:15 +02:00
Lat
5a6ecd051a Fix conflict in cmakelist w/ master merge 2023-09-20 17:17:33 +02:00
Lat
35e530be3d LSZ bungee object/variable definitions 2023-09-20 13:47:39 +02:00
James R.
6878c7dd90 Apply PF_CASTSHADOW when player touches patrolling Hyudoro's shadow, darken player to pure black 2023-09-17 21:56:20 -07:00
James R.
4819290ca2 itemroulette_t: add reserved member, block roulette and P_CanPickupItem, draw empty item box in HUD 2023-09-17 21:56:18 -07:00
Lat
2a8a6d6ccc rideroid: player vars 2023-09-18 01:24:19 +02:00
Oni
35c388c877 Merge branch 'item-pickup-restrictions' into 'master'
Anti item farming

See merge request KartKrew/Kart!1492
2023-09-17 04:55:54 +00:00
James R
2bbf69ded3 Checkpoints: add respawning behavior for players
- Add checkpointId to player_t and netsave
- checkpointId persists if the map is reloaded, but not if
  the map is changed or if "resetplayers" is ticked
- Players spawn at the last touched checkpoint instead of
  at a player start
- Tether sparkles fly out of the player in a circle
2023-09-16 21:46:22 +01:00
AJ Martinez
34061869c7 Anti item farming 2023-09-11 23:51:13 -07:00
Sal
0675a4e527 Tally screen 2023-09-09 05:27:55 +00:00
toaster
fc075b24b4 Merge branch 'gp-lives-steenky' into 'master'
Lives & Rings Cleanup (resolves #647)

Closes #647

See merge request KartKrew/Kart!1447
2023-09-01 20:43:24 +00:00