Commit graph

365 commits

Author SHA1 Message Date
AJ Martinez
45547607bd Ringbox: item respawn refactor + box visuals 2023-06-26 06:36:37 -07:00
toaster
f15a7a946d Remove GS_ENDING
A whole bunch of extremely specific SRB2 material
2023-06-25 23:49:20 +01:00
toaster
c89048def7 Game End cleanup
- Remove specific gamestate, drawer, etc
- Just add an extra fade straight into G_EndGame
2023-06-25 23:49:19 +01:00
Lach
6dc7e96e95 Add Lost Colony symbol object 2023-06-19 23:12:55 +10:00
James R
96a3221dd3 Add Instawhip Recharge states 2023-06-18 01:53:33 -07:00
toaster
1fee9f65fb Servant Hand
- Points in the direction of the best waypoint to take
- Vwoops in and out like a drop target squash-n-stretch
- Shows WRONG WAY only on debugwaypoints
- Flexible enough to be used for custom purposes and other gametypes, the only caveat being if those gametypes use GTR_CIRCUIT conflicting with the other purpose of PF_WRONGWAY
2023-06-15 18:46:44 +01:00
Oni
ce2ea138b4 Merge branch 'gacha-rebound' into 'master'
Gachabom rebound

See merge request KartKrew/Kart!1286
2023-06-14 02:31:23 +00:00
Sal
7b98752b67 Merge branch 'refactor-mapthing' into 'master'
Read-only mapthing_t

See merge request KartKrew/Kart!1252
2023-06-14 00:07:42 +00:00
James R
74e3ea89d6 Add Gachabom Explosion states
- Includes animation
2023-06-13 16:55:12 -07:00
AJ Martinez
2dcfd9542f Instawhip polish round bleven 2023-06-11 20:29:43 -07:00
James R
018f6f3410 Add lightlevel field to mobj_t
Adds r_spritefx.cpp

lightlevel should be -255 to 255, relative offset to
normal sector lightlevel.

If RF_ABSOLUTELIGHTLEVEL, mobj_t.lightlevel becomes an
absolute lightlevel in the range 0 to 255.
2023-06-05 20:00:35 -07:00
Sally Coolatta
9d80323a3a Read-only mapthing_t
Map things are writeable in Lua, which I am pretty certain is a mistake because mapthings are not sent over the network at all. I considered making them net-synced (it would be relatively easy), but it also aligns with another, more "philosophical" issue: Doom generally copies over properties from mapthing_t into mobj_t, and then only refers to it again when needing to respawn an object -- mapthing_t is not really intended to be referred to very often at runtime. At best it's slightly annoying since some objects rely on a spawnpoint for behavior changes, at worst it may make ACS more confusing in the future since Thing and Mobj tags are mixed together or less useful since they wouldn't be able to modify behaviors of objects that are based on args.

So I decided to solve these two issues at the same time; just treat mapthing_t as something to copy values from, like OG Doom does it. This basically just means that special and args are also part of the mobj now instead of the mapthing, which should fill any desire to edit this stuff from Lua, and reduces the number of instances where objects need to check for their spawnpoint to function properly.
2023-05-25 14:40:55 -04:00
AJ Martinez
bfcc453d56 Guard Break FX 2023-05-19 21:14:47 -07:00
AJ Martinez
dadaab1817 Add guarding while ebraking with spheres 2023-05-19 01:53:14 -07:00
AJ Martinez
18c45d8a8a WIP: Insta-"whip" 2023-05-16 23:36:38 -07:00
Oni
9b08ca4c75 Merge branch 'cull-debugwaypoints' into 'master'
debugwaypoints: cull debug mobjs outside of drawdist

See merge request KartKrew/Kart!1201
2023-05-15 02:58:31 +00:00
wolfy852
b1524a8c7f intermission skincolor + demolition of sanity 2023-05-10 14:42:53 +01:00
toaster
74d6445a56 Integrate Ring Racers jingles into the inherited-from-SRB2 JT_ jingle system
Most of this work was completed last year by Sal.
- JT_INVINCIBILITY
- JT_GROW
Future work:
- Actually use the S_RecallMusic system (for some reason it doesn't play nice so had to disable it)
2023-04-30 20:50:12 +01:00
VelocitOni
758c4f98f8 New off-road dust
Remade the off-road dust visuals
2023-04-29 22:56:01 -04:00
James R
3272b3a284 Do not include MT_SPARK in netsave 2023-04-24 15:35:02 -07:00
toaster
945a00df6e Permit emblem pickups that take on the visage of a Follower
- If Global-type map emblem has GE_FOLLOWER, attempt to take on the appearance of the follower specified by var2.
    - Unlike MT_RANDOMAUDIENCE, this picks whether the object should be floating or hopping based on the specified mode of the source Follower.
    - Always chooses to face the nearest player.
- Rearrange some properties affected by Obj_Audience/audience.c to not conflict with MT_EMBLEM
2023-04-21 15:17:43 +01:00
toaster
a74b7995c9 Implement Follower Audience object
- Replaces Chao audience entirely
    - Convenient, because one of the two default follower types used in the audience is Chao
- Can provide one follower, or a list of followers, on the stringarg1 (seperated by spaces/commas) and it'll pick randomly between them
    - If not provided, uses the mapheader follower list
- Can provide one skincolor, or a list of skincolors, on the stringarg2 (seperated by spaces/commas) and it'll pick randomly between them
    - If not provided, uses the follower's default color
    - If the follower's default color is Match/Opposite or the user provides "Random" in stringarg2, pick a random skincolor
- If arg3 is set, floats in the air
    - MTF_OBJECTSPECIAL in binary format
- If arg4 is set, faces the closest player
    - MTF_AMBUSH in binary format
    - Uses some funny mathematical tricks to avoid checking on the same frame as every other audience member at once
2023-04-20 23:15:56 +01:00
toaster
5f15736626 Mapheader Followers system
Replaces Flicky List system from 2.2.
Specify a list of comma-seperated Followers.
Not used by any systems in this commit, but important to store the data for later.
2023-04-20 23:01:13 +01:00
lachablock
c98ff9616b Start Ring Shooter respawn: while e-braking, enter the respawn command to spawn a Ring Shooter. Currently purely visual and does not despawn. Steals the player's face for funsies. 2023-04-17 00:22:07 -04:00
toaster
03049db837 UFO Catchet glass ball
Preliminary offset, no effects, but closer to complete visually.
2023-04-07 21:01:51 +01:00
toaster
8a3d225790 UFO Catcher can now carry Emeralds other than the Green Chaos Emerald
- Uses P_GetNextEmerald to determine the associated emerald. Earlier work paying dividends!
- Color selected matching Cup Select screen
- New states which can be used in other contexts
    - S_SUPEREMERALD1 and S_SUPEREMERALD2
    - S_SUPEREMERALD_UNDER
2023-04-07 19:32:46 +01:00
toaster
57b1ad15a5 GameTypeRules: Add GTR_NOPOSITION
Says on the tin - introtime == starttime.
2023-04-03 00:28:36 +01:00
James R
61abb7a82e Add MF_DRAWFROMFARAWAY flag, renders objects up to 2x drawdist 2023-03-26 22:01:25 -07:00
James R
629614710c Free MF_AMBIENT 2023-03-26 21:52:31 -07:00
Oni
b9bbb6cb8a Merge branch 'conditions-cascading' into 'master'
Conditions Cascading

Closes #366

See merge request KartKrew/Kart!1053
2023-03-23 23:51:30 +00:00
James R
dc024b874b Morph Drop Target from forward thrown white to lime
Blends from white into lime over 27 tics.
2023-03-19 03:52:25 -07:00
toaster
2e1efaff0c Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading
# Conflicts:
#	src/k_battle.c
#	src/k_hud_track.cpp
#	src/k_kart.c
#	src/p_inter.c
2023-03-14 21:59:19 +00:00
toaster
241475155b Rename "Break the Capsules" to "Prison Break"
We had this collective consciousness bigbrain moment in VC together, and it can literally only happen in this branch because unlocks.pk3 is the only main-game asset that needs to change for it
Solves the big problem we had with mixing up Item Capsules and ~~Battle Capsules~~ PRISON EGGS
2023-03-12 20:17:46 +00:00
James R
264e445f0c Add MF2_ALREADYHIT; don't deal damage for multiple wombos within the same tic
These wombos still create hitlag.
2023-03-11 05:39:07 -08:00
James R
df00ed4f64 Merge branch 'render-highlight' into 'master'
debugrender_contrast, debugrender_spriteclipping and debugrender_highlight

See merge request KartKrew/Kart!1021
2023-03-07 09:53:13 +00:00
James R
f71ba63cd3 Add RF_ALWAYSONTOP, renders sprite through walls
Specifically, it avoids sorting or clipping the sprite
against stuff like FOF planes, which are notorious for
messing up sprites. Useful for debug stuff which
absolutely must be visible.
2023-03-06 06:50:23 -08:00
AJ Martinez
f4fbd1e654 Sliptide boost VFX first pass 2023-03-06 05:00:59 -07:00
AJ Martinez
6173ca47aa SPB Attack: emblems/medals preliminary 2023-03-03 12:15:00 -08:00
James R
583ef41ac9 Add MT_LOOPENDPOINT, MT_LOOPCENTERPOINT
Doomednum 2020, 2021
2023-02-28 20:27:11 -08:00
James R
3774346642 Add Gacha Bom sprites 2023-02-20 20:52:11 -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
James R
badb87697c Add missing skincolors to dehacked table 2023-02-14 04:17:04 -08:00
Oni
f57dd43e36 Merge branch 'minigen' into 'master'
minigen

See merge request KartKrew/Kart!900
2023-01-25 05:54:12 +00:00
Oni
d42fdd0346 Merge branch 'music-debug' into 'master'
Music debugging, devmode music

See merge request KartKrew/Kart!885
2023-01-25 00:14:42 +00:00
toaster
6a723cff58 Support for user-specified minimap bounds
The totally-not-a-secret reason I made this branch.
- doomednum 770 (associated with polyobject anchors 760/761 and skybox centerpoint 780)
- Place exactly two in a map to draw an implicit rectangle.
    - Supports top-left/bottom-right AND bottom-left/top-right placements.
    - I_Errors if you place too many (or only one).
- You don't *have* to have these, this is just a bonus if you're a map like Power Plant or CDSS1 negatively affected by your skybox.
2023-01-24 17:57:56 +00:00
toaster
b6be0ef6e8 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into music-debug
# Conflicts:
#	src/audio/xmp.cpp
#	src/audio/xmp_player.cpp
#	src/sdl/new_sound.cpp
2023-01-22 15:20:14 +00:00
toaster
ceed74d052 Stumble damagetype
- DMG_STUMBLE in SOC, hardcode
- Has sector type
    - UDMF: damagetype = "Stumble"
    - Binary: Sector type 9, section 1
- Can be chained even when invincible, unlike Tumble
- Will never instinctively cause hitlag
2023-01-22 14:56:42 +00:00
James R
49c5c785bf Remove musictype_t, S_MusicType and I_SongType return implementation string
Lua API change: S_MusicType now returns string instead of number
2023-01-12 02:50:02 -08:00
toaster
c7525fb5a6 Introduce MT_OVERLAY exception flags
- Applied via threshold of Overlay mobj
    - OV_DONTSCREENOFFSET
        - spritexoffset, spriteyoffset
        - Given to Item Capsule quantity numbers
    - OV_DONT3DOFFSET
        - sprxoffset, spryoffset, sprzoffset
    - OV_DONTXYSCALE
        - spritexscale, spriteyscale
    - OV_DONTROLL
        - rollangle, pitch, roll
Makes overlay on UFO emerald follow the emerald's spriteyoffset now
2023-01-08 18:16:04 +00:00
James R
3549625095 Add item monitor states
SPR_MSHD
SPR_IMDB
SPR_MTWK

S_MONITOR_DAMAGE
S_MONITOR_DEATH
S_MONITOR_SCREEN1A
S_MONITOR_SCREEN1B
S_MONITOR_SCREEN2A
S_MONITOR_SCREEN2B
S_MONITOR_SCREEN3A
S_MONITOR_SCREEN3B
S_MONITOR_SCREEN4A
S_MONITOR_SCREEN4B
S_MONITOR_STAND
S_MONITOR_CRACKA
S_MONITOR_CRACKB

S_MONITOR_BIG_SHARD
S_MONITOR_SMALL_SHARD
S_MONITOR_TWINKLE

MT_MONITOR
MT_MONITOR_PART
MT_MONITOR_SHARD
2023-01-03 05:31:30 -08:00