Commit graph

354 commits

Author SHA1 Message Date
Lachlan Wright
637490e2de AI players no longer take shield damage in Ultimate mode 2019-09-24 23:49:20 -04:00
lachwright
98d0a0d98e Added bounce-off behavior for multi-hit enemies/bosses 2019-09-24 03:54:04 +08:00
sphere
f8c97aeb27 Tweak bubble grabbing behavior. 2019-09-22 04:05:22 +02:00
Nev3r
777e7f8760 Merge branch 'deathstuff' into 'master'
Lots of death stuff

Closes #207

See merge request STJr/SRB2Internal!306
2019-09-16 16:32:45 -04:00
Nev3r
21b5ebf6fa Merge branch 'abilityclean' into 'master'
Clean up an ungodly amount of shit relating to abilities.

Closes #195, #167, and #177

See merge request STJr/SRB2Internal!307
2019-09-16 16:09:20 -04:00
toaster
2b0344a22f Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into deathstuff 2019-09-09 15:25:48 +01:00
toaster
6815748a3e Merge branch 'flippost' into 'master'
Flippost

Closes #206 and #191

See merge request STJr/SRB2Internal!320
2019-09-08 16:24:58 -04:00
toaster
11e3f5ec96 Change flipped starpostz to define the top of the player object, for cases where scale on contact with starpost is different to spawn scale. 2019-09-08 21:21:36 +01:00
toaster
2e90c40934 Fade time before Game Over track.
Notably, can no longer use P_PlayJingle because of pre-fade.
2019-09-08 18:00:01 +01:00
toaster
d26ff197dc * Store gravflip (resolves #206) and destscale in starposts. (Using the same field, taking advantage of the fact that object scale will always be positive!)
* Update the function signature of P_MixUp to accomodate both it and drawangle instead of doing it outside of the function.
* If the player is spawning from the start of the stage and it's from the ceiling, be in fall frames as requested (resolves #191).
2019-09-07 22:12:47 +01:00
toaster
99b4439b2a * Allow CA2_GUNSLINGER users to pop monitors with their ability (as long as their weapon type isn't a pre-existing weapon ring).
* Correct the position of a carried player relative to Tails.
2019-09-07 11:33:26 +01:00
toaster
bb2012a8d0 Clean up an ungodly amount of shit relating to abilities.
* Put everything in P_DoJumpStuff, instead of half in that function and half spread across the player thinker.
* Have a proper if else cascade that first tries shield abilities, then super transformation, then random abilities like CA_TELEKINESIS.
* Use this new arrangement to allow CA_TWINSPIN users to use their ability on spin if their secondary ability is CA2_MELEE (resolves #195).
* Random bugfixing. Didn't keep track of what I'd caused while working on this and what was already there, but there was a lot of it.

The only two abilities which have spin-button properties outside of the else block is CA_AIRDRILL and CA_FLY/CA_SWIM (which now also prevents you from swimming down in goowater).
2019-09-06 19:01:46 +01:00
toaster
f07309707d Lots of death stuff.
* Genesis-style love and attention to the death event.
	* Only visibly decrement lives/rings when you're respawning (or game over, see below).
	* Faster no-button-press respawn.
* Game Over specific love.
	* Animation of Level Title font coming in from the sides.
	* https://cdn.discordapp.com/attachments/428262628893261828/617692325438554132/srb20067.gif
	* Change gameovertics to 10 seconds instead of 15.
	* Make the minimum time before you can force going to the Continue screen longer.
* Accomodate death in MP special stages as a form of exit.
	* Don't have your rings or spheres reset when you die in a special stage, so that the stage isn't softlocked with the new harder limits.
* Fix a bug with CoopLives_OnChange where changing to infinite lives didn't force a game-overed player to respawn.

Also, two not-quite death things which nonetheless were relevant to change:

* Fix quitting a special stage having some of the shared spheres/rings disappear into the aether.
* Fix a warning during compilation for the Ring Penalty print.
2019-09-01 15:55:23 +01:00
toaster
6a9da63d7f Motor's new Eggman sprites, along with some other sweet bits of boss polish. What else can I say? Just play it. 2019-08-30 19:19:54 +01:00
toaster
324c584e5d Tweak the ACZ3 fight a little, animationwise, since every other non-Brak boss got an upgrade to its death anim in this branch.
Also make its bomb throw anim use all the new sprites.
2019-08-13 19:41:04 +01:00
toaster
384dc0674e Revert "Revert "Merge branch 'musicplus-aug2019-b' into 'master'""
This reverts commit 603d5805f7.
2019-08-04 12:03:57 +01:00
toaster
603d5805f7 Revert "Merge branch 'musicplus-aug2019-b' into 'master'"
This reverts commit 56bfdb7113, reversing
changes made to c29cfbef9b.
2019-08-04 11:32:55 +01:00
mazmazz
dd9efebab5 Merge remote-tracking branch 'origin/master' into internal-musicplus-jingle 2019-08-03 23:38:49 -04:00
Monster Iestyn
94c1873b8c Merge branch 'anglestuff' into 'master'
Spring angles and ring angles

See merge request STJr/SRB2Internal!266
2019-08-02 13:10:23 -04:00
toaster
18e43a5cef * Fix "exitlevel" being counted as a special stage success despite not giving you an emerald by inverting stagefailed's default value, since there's only a limited number of ways you can WIN at a special stage.
* Correct a potential source of desync in P_GiveEmerald.
2019-07-30 16:44:40 +01:00
toaster
62c708e64a Two one liners related to angles, so doin' em in a single branch.
* If a spring has vertical speed AND horizontal speed, always set the player's angle when touching it.
* If you have less than 32 rings and spill them, they now get launched away from the player's motion, rather than in the direction of the camera.
2019-07-29 20:29:02 +01:00
Jonas Sauer
166f1fac66 Fixed the thinkerlist issues by removing THINK_LIMBO. Delay-removed thinkers now stay in their list.
Also includes toaster's assorted fixes and improvements from target_painted_on_your_ass.
2019-07-13 01:42:03 +02:00
Monster Iestyn
63d337211e Merge branch 'eggcolosseum' into 'master'
Egg Colosseum (CEZ3 remaster)

See merge request STJr/SRB2Internal!248
2019-07-09 16:32:24 -04:00
Monster Iestyn
11a24b88ee Merge branch 'seaegg_tweaks' into 'master'
Sea Egg

See merge request STJr/SRB2Internal!244
2019-07-09 16:25:07 -04:00
toaster
2df90888bb Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into eggcolosseum
# Conflicts:
#	src/p_mobj.c
#	src/sounds.c
#	src/sounds.h
2019-07-09 19:52:52 +01:00
toaster
98b6280d03 Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into toast_cleanup
# Conflicts:
#	src/p_mobj.c
2019-07-08 13:53:31 +01:00
toaster
1f15209eb5 Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into seaegg_tweaks
# Conflicts:
#	src/p_enemy.c
#	src/p_mobj.c
2019-07-08 13:52:11 +01:00
toaster
867f7ecfca ha ha ha how can i possibly describe this commit
Just wait for the MR, it won't be far behind.
2019-07-08 13:26:40 +01:00
MascaraSnake
e9978b2955 Merge branch 'master' into thinkerlists
# Conflicts:
#	src/f_finale.c
#	src/p_enemy.c
2019-07-02 23:08:37 +02:00
toaster
f9f92abc44 ha ha ha ha ha ha ha ha
Sea Egg is majorly changed according to Mystic's ancient instructions (excepting the flying FOF rock, I cared not for fucking around with FOFs).

Specifically:
* Faster paced fight.
* Instantly travels horizontal distance.
* Fakes no longer hurt papa, and spin out like a deflating balloon when he dies.
* New attack: When surfacing, produces an electric shockwave. Replaces underwater shock. Designed for new, shallow arena.
* Support for multiple bosses in the same map distinguished by parameter.

Will upload map to fight the new battle in on the MR.
2019-06-30 15:37:33 +01:00
mazmazz
923dc34215 Merge branch 'public-notpublic-musicplus-jingle' into internal-musicplus-jingle 2019-06-29 18:33:45 -04:00
mazmazz
6244489fd0 Merge branch 'public-musicplus-jingle' into public-notpublic-musicplus-jingle 2019-06-29 18:10:44 -04:00
MascaraSnake
836d3d3186 Fixed Canarivore gas going through the floor 2019-06-29 00:19:46 +02:00
toaster
8f6973cb51 Now it's CA_TWINSPIN's turn to get the improvements!
* Remove PF_THOKKED every time a successful damage bounce occours.
* When this happens, spawn a number of particles based on thokitem at half scale! (Optimised, again, for MT_LHRT.)
* Also spawn these particles when a successful spring boost occours, as well as playing a twisted spring sound.

Also, some other related tweaks:

* Optimisations to A_VultureBlast, which was used as a base for the particle creation.
* Make the Metal Sonic boss use P_PlayerCanDamage instead of a custom, somewhat broken player damage detection mechanism.
* P_SpawnGhostMobj takes colorized into account.
* Fold Tails propeller damage into P_PlayerCanDamage.
* When performing an Attraction Blast, place the player in roll frames.
* Update all conditions preventing SH_PINK to incorporate thokitem and spinitem as well.
* Buff MT_LHRT travel distance at slow speeds.
2019-06-26 23:26:05 +01:00
toaster
d5988c4f8c Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into toast_cleanup
# Conflicts:
#	src/p_mobj.c
2019-06-26 20:43:37 +01:00
toaster
3021116797 Some preliminary work to make multiple bosses in the same map work nicely together, by allowing parameter to alter the linedef executor tag to call in increments of 100.
Also: Making sure every single reserved tag is recorded as an LE_ constant.
2019-06-22 17:03:39 +01:00
toaster
81882b63b8 As I wanted MI to do but he was too exhausted at the time from hardcoding, make the Fang bullet knockback less hardcoded and instead give it MF2_SUPERFIRE.
# Conflicts:
#	src/p_mobj.c
2019-06-22 17:03:10 +01:00
toaster
50e4a65f99 Correct some more oversights of switching to revitem for CA2_MELEE's particles. 2019-06-21 12:51:55 +01:00
toaster
d5e91ed8d7 Don't give SH_PINK in Race/Competition. They're your opponents! 2019-06-21 12:35:37 +01:00
toaster
460632ad3b Some preliminary work to make multiple bosses in the same map work nicely together, by allowing parameter to alter the linedef executor tag to call in increments of 100.
Also: Making sure every single reserved tag is recorded as an LE_ constant.
2019-06-20 00:24:13 +01:00
toaster
84ff2a57a1 As I wanted MI to do but he was too exhausted at the time from hardcoding, make the Fang bullet knockback less hardcoded and instead give it MF2_SUPERFIRE. 2019-06-19 23:29:39 +01:00
toaster
2e6898f29e PITY IN PINK!
* Smoothen Pity Shield animation to go with sphere's updates to Nev3r's sprites.
* Added LHRT object, designed to be summoned with CA2_MELEE.
    * Gives a pink Pity Shield (SH_PINK) on same-team player contact.
    * Deals damage to non-player enemies.
    * Harmlessly fades into nothing when touching an enemy player, players with SH_PINK already, and players capable of applying SH_PINK to others (through non-Lua methods).
* Basically, you-know-who is the Healer of the party whenever they're around. Fun consequences for the Co-op and CTF metas.
2019-06-19 23:20:24 +01:00
toaster
6a58ae34d1 In order to make P_PlayerCanDamage more flexible, I ended up bundling the invincibility/super checks into there.
Also, the start of my improvements to CA2_MELEE. Users of that abiliy can only damage enemies/monitors if they touch the front of the player object, but to make up for it, the player is no longer forced away from the direction of the screen at bigger movement speeds.
2019-06-19 13:20:34 +01:00
toaster
ef6e00e8a2 P_PlayerCanDamage(player_t*, mobj_t*), ported from the abandoned project_birthday because GOD the code looks awful with those huge monolith conditions in it. Available to Lua.
(Also, minor fixes to lib_pSpawnLockOn, and removing the SH_OP fuckery.)
2019-06-19 12:09:02 +01:00
MascaraSnake
d388547021 Some more minecart fixes 2019-06-19 00:10:28 +02:00
MascaraSnake
c11a3010d9 Fixed the Canarivore gas slowdown being much too weak 2019-06-18 19:29:53 +02:00
MascaraSnake
622a44f551 Fixed a bug involving players being thrown out of minecarts 2019-06-16 16:39:06 +02:00
MascaraSnake
774ccad401 Do death animation even when MF2_DONTDRAW is set 2019-06-15 22:29:30 +02:00
MascaraSnake
71a25eef92 Don't jump repeatedly when holding jump 2019-06-15 21:58:58 +02:00
MascaraSnake
39deb64e4f Streamlined the minecart death handling 2019-06-15 21:43:36 +02:00
MascaraSnake
91c1e13273 Simplified the setup for the Snapper/minecart death animations 2019-06-15 17:33:07 +02:00
MascaraSnake
33ed2924e9 Fixed minecart not exploding on death 2019-06-15 14:21:27 +02:00
MascaraSnake
cc9d7bee80 A bunch of bugfixes 2019-06-15 00:04:50 +02:00
MascaraSnake
ba9c7d9310 More incomplete minecart hardcoding 2019-06-13 21:45:30 +02:00
MascaraSnake
98ea229680 Hardcoded the Canarivore 2019-06-10 13:58:16 +02:00
Monster Iestyn
b9611c3a81 Hardcoded the cork's stun-you-even-while-flashing behaviour 2019-05-05 19:16:30 +01:00
Monster Iestyn
b0087616c7 Hardcoded the boss's TouchSpecial hook.
Also cleaned up this part of P_TouchSpecialThing a bit while I'm here
2019-05-05 18:22:19 +01:00
Nev3r
a9110c0645 Fixed more mobj thinker iterator oversights and removed all mobj thinker function checks
Mobjs got their own thinker list after all, and disappearing thinkers are automatically purged from their lists and sent to the limbo list.
So it's safe to assume all thinkers inside the mobj list must be mobjs.

Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-21 16:39:57 +02:00
Nev3r
696ccbd943 Fix mobj list iteration oversights.
Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-21 12:58:22 +02:00
Nev3r
39ba20be6b Basic multiple thinker list implementation
Set up a main thinker list and a polyobject mover list to test things up. Works so far, networking as well.

Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-20 22:39:22 +02:00
Monster Iestyn
7ae6d5ee8c Merge branch 'public_next'
# Conflicts:
#	src/doomstat.h
#	src/g_game.c
2019-03-28 14:19:02 +00:00
Alam Ed Arias
fe22fdc5a3 P_SuperDamage() is too big for inlining 2019-03-25 15:30:25 -04:00
mazmazz
8317155c40 Merge branch 'public-gl-next' into public-musicplus-jingle 2019-03-15 18:42:19 -04:00
mazmazz
469ed9cbe3 Implement MIXNIGHTSCOUNTDOWN
An alternate mode to NiGHTS countdown jingle: play it as an SFX while fading down the music.
2019-03-14 23:10:14 -04:00
mazmazz
075f28b7c8 WIP 20190101 merge
d_netcmd.c
filesrch.c
m_menu.c
p_setup.c
p_spec.c
r_data.c
r_main.c
r_things.c
w_wad.c
w_wad.h
2019-01-02 01:09:15 -05:00
mazmazz
ea7162a76a Update source copyrights to 2018 2018-11-25 07:35:38 -05:00
Digiku
9e75774fd2 Merge branch 'nights-ideyaspawn-dronebox' into 'master'
NiGHTS: Ideya Anchor Points

See merge request STJr/SRB2Internal!160
2018-11-21 21:03:29 -05:00
Digiku
c6bd1111e5 Merge branch 'nights-dronebox' into 'master'
NiGHTS: Drone hitbox improvements and player position correction on Nightserize

See merge request STJr/SRB2Internal!158
2018-11-21 20:19:39 -05:00
Digiku
f3e4cf1f9d Merge branch 'nights-fastercapsule' into 'master'
NiGHTS: Faster Egg Capsule destruct sequence

See merge request STJr/SRB2Internal!164
2018-11-21 16:30:01 -05:00
Digiku
597877773b Merge branch 'nights-onfootcapsulefix' into 'master'
NiGHTS: Allow player to destroy capsule on-foot before transforming into NiGHTS

See merge request STJr/SRB2Internal!185
2018-11-21 16:29:37 -05:00
mazmazz
f2033350fc MP Jingle: A brace (Underwater restore, p_inter.c) 2018-09-21 15:53:03 -04:00
mazmazz
e0f9cdcfd1 MP Jingle: Fix underwater music not restoring on air bubble or shield 2018-09-21 15:44:52 -04:00
mazmazz
c60d61a493 musicplus-jingle 2.2 -> 2.1 backport 2018-09-18 15:10:00 -04:00
mazmazz
bc2f48a018 Merge branch 'master' into nights-dronebox 2018-09-07 09:06:32 -04:00
mazmazz
3b39895e4f Stray nights-onfootfix line 2018-09-07 09:01:38 -04:00
mazmazz
c0ffbdafce Revert "Ideya fixes when a player has more than one Ideya"
This reverts commit e3facccb9d.
2018-09-07 08:56:53 -04:00
mazmazz
4fe1b2652d Merge branch 'master' into nights-fastercapsule 2018-09-07 08:56:02 -04:00
mazmazz
c50a0d60f5 Merge branch 'master' into nights-keeppoints 2018-09-07 08:13:57 -04:00
mazmazz
fed72c344a Dummy out NiGHTS item faster attract 2018-08-30 10:50:03 -04:00
mazmazz
a44be49535 Merge remote-tracking branch 'origin/master' into nights-inufixes 2018-08-30 08:13:34 -04:00
Monster Iestyn
a48326383c Merge branch 'master' into hud-cleaning
# Conflicts:
#	src/y_inter.c
2018-08-29 16:39:02 +01:00
mazmazz
dc86fe9b5f Merge remote-tracking branch 'origin/master' into nightsplus-laplogic 2018-08-29 10:16:49 -04:00
Monster Iestyn
aa863e481e Add INFLIVES macro, to make it easier to find infinite lives-related code 2018-08-23 20:09:39 +01:00
mazmazz
55d2da2201 Fix NiGHTS Bumper player positioning 2018-08-15 18:42:20 -04:00
mazmazz
ac79f6975c Look for two anchorpoints if player has two Ideyas
* Undid "optimization" of checking player->exiting first because the last Ideya's orbit won't be adjusted
2018-08-14 17:48:14 -04:00
mazmazz
655b590c06 Ideya fixes when a player has more than one Ideya
# Conflicts:
#	src/p_inter.c

# Conflicts:
#	src/p_inter.c
2018-08-14 17:28:51 -04:00
mazmazz
0862aece9f Ideya fixes when a player has more than one Ideya
# Conflicts:
#	src/p_inter.c
2018-08-14 17:21:49 -04:00
mazmazz
e3facccb9d Ideya fixes when a player has more than one Ideya 2018-08-14 17:13:23 -04:00
mazmazz
1921cc485e Fix issue where player cannot destroy the NiGHTS Capsule if they have not transformed to NiGHTS 2018-08-14 14:18:18 -04:00
mazmazz
f1fc205b31 Deduct marescore when player hits ground
* ~~For speedrunning~~: Land on the Drone, keep your points!
2018-08-13 11:12:53 -04:00
mazmazz
bec3a6884c Make anchoring non-specific to Ideya states (now anchor anything!)
# Conflicts:
#	src/p_inter.c
2018-08-13 02:19:53 -04:00
mazmazz
06bbafec2f Ideya anchoring optimization 2018-08-13 02:17:29 -04:00
mazmazz
54cb7ddf32 Anchor Ideya logic
# Conflicts:
#	src/p_enemy.c
#	src/p_inter.c
2018-08-13 02:17:07 -04:00
mazmazz
c3e0267029 Fix attraction bug on non-NiGHTS and Nightopian Helper
* Switch from mo->movecount to mo->movefactor for type compat
* Adjust timings for regular and paraloop attraction
2018-08-12 23:03:12 -04:00
mazmazz
4e02171c23 Add lapbegunat and lapstartedtime player variables
There is no lapfinishedtime because [mare]finishedtime refers to when Egg Capsule is destroyed. That concept does not apply to laps.
2018-08-12 14:21:26 -04:00
mazmazz
43b790c26f A_OrbitNights make actor scale to target
* Added `donotrescale` input to disable this behavior
* Reverted previous commit changes for scaling Ideya because unneeded
2018-08-12 01:07:26 -04:00
mazmazz
aecabb246d Scale Ideyas when moving to/from NIGHTSDRONE and scaling changes to NIGHTSDRONE 2018-08-11 23:53:07 -04:00
mazmazz
4f9231b7a5 Fix orbiting Ideya bug, now player gets them back again on exit 2018-08-11 22:13:33 -04:00
mazmazz
0fe41e06ff Remove A_OrbitNights additional input offset on current target Z, don't need it 2018-08-11 12:06:50 -04:00
mazmazz
d1a8e0baa0 Scale player to Drone's scale on Nightserize, and reset scale on De-Nightserize
* Also correct player's position to Z center of Drone hitbox on Nightserize
2018-08-11 02:02:56 -04:00