Commit graph

1576 commits

Author SHA1 Message Date
toasterbabe
d0cd1d951f Add prefoppositecolor to Lua. 2016-07-20 15:53:08 +01:00
toasterbabe
4435815c35 "prefoppositecolor" - exists solely for metal so he can have his sonic 4 peridot-background end sign when using skincolor_blue. not updating player.dta yet though. 2016-07-20 15:48:24 +01:00
toasterbabe
f1311c515d Making FF_MIDDLESTARTCHANCE more useful for FF_ANIMATE animations. 2016-07-19 13:45:31 +01:00
toasterbabe
46e50a523f Let's be consistent with how other parts of the code handle this same issue of conditional operations surrounding non-conditional operations. 2016-07-19 01:19:03 +01:00
toasterbabe
cfcd25f2cd Fixing a bug which could be caused by tapping up/down on the character select at high speeds by ensuring that o is never negative instead of assuming the one circumstance it may have been negative under. 2016-07-19 01:03:40 +01:00
toasterbabe
ac2ff5e386 CA_MELEE. Mostly complete.
* When moving slowly, P_InstaThrust at S_SKIN's maxdash forward, and set momz to S_SKIN's mindash upwards. Plays a tok noise (not thok). Hurts enemies/bosses, busts spikes/monitors/all types of bustable blocks.
* When moving quickly... doesn't do anything yet, but WILL do a slide.

Also, P_DoSpinDash is now renamed to P_DoSpinAbility, and CA_TWINSPIN users can bust all bustable blocks on collision too.
2016-07-17 21:31:15 +01:00
toasterbabe
4168fc02cb Decided the forcing of S_PLAY_FALL when PF_THOKKED was present wasn't that great. 2016-07-17 18:57:03 +01:00
toasterbabe
4bd56b82be Better multiability support.
* CA_TWINSPIN - you can do it multiple times
* CA_DOUBLEJUMP - your jump height is reduced each time, like in Kirby games. The number of extra jumps once you've left the ground that are available is determined by the character's actionspd.
2016-07-17 17:41:44 +01:00
toasterbabe
df8568642e Dashmode users can break spinbust blocks when dashing, twinspin users can break both spinbust and Knuckles-only blocks when twinspinning. 2016-07-17 16:34:07 +01:00
toasterbabe
cc9f874c5d Further improvements to the character select menu. 2016-07-17 16:21:46 +01:00
toasterbabe
9557cad235 Noticed some bad logic and typos, so correcting. 2016-07-17 15:56:31 +01:00
toasterbabe
9c48cbb68c Doing stuff for Rob, turns out the anim was designed to go twice as fast. Tally ho! 2016-07-17 01:22:50 +01:00
toasterbabe
898e17a441 SF_MACHINE characters create boss explosions on death.
Also, the gravity of drowning characters has been reduced to look more natural.
2016-07-16 23:26:52 +01:00
toasterbabe
8cb8990863 Merge branch 's_skinprovements' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into s_skinprovements 2016-07-16 22:44:01 +01:00
toasterbabe
f757fb3545 SF_MACHINE. Currently only changes drowning, but could do more.
* Electric sparks coming off entire body instead of bubbles coming out mouth
* Different sounds.
* Different icons.

These sprites are currently local only, but I'll be doing a lot of asset updating this evening since Rob asked me to so it won't be long until you can get them.
2016-07-16 22:43:49 +01:00
Alam Ed Arias
4e064dc335 whitespace: cleanup 2016-07-16 16:05:00 -04:00
Alam Ed Arias
e393b12cec Merge branch 'master' into s_skinprovements 2016-07-16 16:04:10 -04:00
Alam Ed Arias
4e322af6cb whitespace: cleanup 2016-07-16 16:03:32 -04:00
toasterbabe
0f79e9ea3b On Rob's request, the twinspin can break spikes. (woo) 2016-07-16 18:54:22 +01:00
toasterbabe
21ba204c9e Revert of the FF_MIDDLESTARTCHANCE changes for player states, although the flag still exists internally since there's no reason to remove it. 2016-07-16 18:34:42 +01:00
toasterbabe
765254f183 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into s_skinprovements 2016-07-16 17:24:19 +01:00
toasterbabe
d8065fa525 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into s_skinprovements
# Conflicts:
#	src/d_player.h
#	src/dehacked.c
#	src/info.c
#	src/p_user.c
2016-07-16 17:23:25 +01:00
Monster Iestyn
99ee3d5149 Merge branch 'side-springs' into 'master'
Sideways springs, horizontal hog-launchers, perpendicular plungers...

Call them what you like, they're in the code now. And have been for months!

Nev3r uses the hell out of these and I'm fed up of them being <!>'s all over the place, so please have 'em in master so we can update srb2.srb and make things better for all of us.

See merge request !30
2016-07-16 12:20:22 -04:00
toasterbabe
94490623b5 Cleanup of P_CheckUnderwaterAndSpaceTimer's conditional checks for future PF_ROBOT changes, where characters like Metal make electric zaps instead of bubbles. 2016-07-16 17:11:34 +01:00
Monster Iestyn
9b15247191 Merge branch 'dashmode' into 'master'
Dashmode

This branch Metal Sonic's abilities (CA_DASHMODE) to the game.

See merge request !26
2016-07-16 12:09:20 -04:00
toasterbabe
226785dcd6 Putting the swim animation checks in one place. 2016-07-16 14:45:22 +01:00
toasterbabe
cc35a5e1c1 Ported CA_HAMMER from new-character-actions in a way that takes advantage of all of the non-hardcodey things I've added in this branch.
Also, it's called CA_TWINSPIN because that's more inoccouous.
2016-07-16 13:55:12 +01:00
toasterbabe
df8be73787 ...fixed this error 2016-07-15 22:13:47 +01:00
toasterbabe
1e648e4709 Woops, forgot SOC parser. 2016-07-15 17:32:29 +01:00
toasterbabe
03fe312490 On MI's reccomendation, a skin flag to disable the effects of FF_MIDDLESTARTCHANCE for specific characters whose animations might not be symmetrical. 2016-07-15 17:30:52 +01:00
toasterbabe
01dc98f8f0 New frame flags for more complicated animations.
* FF_MIDDLESTARTCHANCE - has a 50% chance of starting the spr2 or FF_ANIMATE animation halfway in
* FF_SPR2ENDSTATE - if var1 == S_NULL, don't loop, just stop incrementing the frames. Otherwise, go to the state represented by var1.

The former is just something I did for fun, the latter is something that'll come in handy when porting in new-character-moves.
2016-07-15 16:48:30 +01:00
toasterbabe
9b68da63de Minor cockup with availability handling not being updated when I changed how it worked. 2016-07-14 17:10:17 +01:00
toasterbabe
b8fe20a086 Changing irrelevant comment. 2016-07-14 16:27:48 +01:00
toasterbabe
4c6ed6da76 The availability unlockable number for a skin is now available, read only, to Lua. 2016-07-14 15:51:03 +01:00
toasterbabe
417e9187d9 Realised the potential for out-of-bounds memory accessing, so put some limits in place to prevent that from happening.
(skin->availability is a UINT8, so it'll never be negative)
2016-07-14 14:45:15 +01:00
toasterbabe
caed5718c1 Characters can now be unlocked just like any existing unlockable.
Setup:
* S_SKIN needs an "availability" line. Set to 0 to have always available, otherwise is assumed to be UINT8 unlockable number. If it's a valid unlockable, its name will be copied over with the character's realname.
* Define an unlockable via SOC or hardcode. If you don't want it visible on the Secrets menu, just set its type to None. Everything else is as normal - you can set the conditionset to whatever, objective, height, nochecklist, nocecho...
2016-07-14 14:39:22 +01:00
toasterbabe
c5f6ae8aaa Fixed forceskin to not always allow due to bad logic. 2016-07-14 13:24:57 +01:00
toasterbabe
674ec3e515 Correction of the new default revitem setup. 2016-07-14 12:31:20 +01:00
toasterbabe
6e0c9f7e18 The "forcecharacter" level header now allows for hidden characters.
Also, new default for revitem to match player.dta, and an updated Force Skin netgame option name to reflect the fact it's string based now.
2016-07-13 22:28:23 +01:00
toasterbabe
76910a8e11 Sorry, one last change. I know I should be more certain when committing. 2016-07-13 20:24:39 +01:00
toasterbabe
f1b1e1aa9b I'm stupid. 2016-07-13 20:19:52 +01:00
toasterbabe
2ee22fc40a Dedicated servers have all skins unlocked for the purpose of forceskin.
Meanwhile, a sneaky sneaky for hiding hidden characters further.
2016-07-13 20:14:07 +01:00
toasterbabe
a108fcce5b Simplification of the hide check after discussion with Rob. 2016-07-13 19:10:31 +01:00
toasterbabe
824458a5ff Swimming animation! Since I know we want it for Smiles eventually.
Also, I guess CA_SWIM isn't forced into running on water anymore.
2016-07-13 18:18:18 +01:00
toasterbabe
c2aba46298 New S_SKIN attributes.
* radius - sets the player's radius for that skin.
* height - sets the player's normal height for that skin.
* spinheight - sets the player's spinheight for that skin.
* shieldscale - see http://i.imgur.com/BQ5DhKC.png for justification
2016-07-13 15:15:45 +01:00
toasterbabe
8087cde5db Correcting a few cockups. 2016-07-13 13:26:21 +01:00
toasterbabe
b2bfe3737a Rudimentary SOC shuffling if you add a character with the same name as a previous character to prevent character select from breaking. 2016-07-13 12:17:53 +01:00
toasterbabe
fcfe8c0132 More clearly defined handling for replacing character select images. Specifically takes into account whether the hidden character was added in this file or a seperate one.
Also, removed some commented out code regarding character selects, and removed a useless case for R_SkinAvailable().
2016-07-12 20:10:01 +01:00
toasterbabe
80a3d79d4d Some hacks added to forceskin to:
* support hidden characters
* take the skin->name, not the number
* display the skin->name in the menu

Also, minor tweaks to other things.
2016-07-12 14:40:20 +01:00
toasterbabe
b5108afe16 Substantial re-engineering for the foundations of hidden characters.
R_SkinUnlock defines the circumstances under which a skin is available. For simplicty's sake, I've currently bound it to an S_SKIN variable so I can toggle it easily, but it WILL be replaced with a hook into the savegame system at some point.
* Currently has three tiers of unlock - freebie (forceskin or modeattacking via a loaded replay), Ringslinger Only, and SP/Coop and Ringslinger.
* I don't know anything about netcode so I basically decided to make R_SkinUnlock relevant only under local circumstances, try as hard as possible to stop bad skin info from getting sent to the server, and then admit defeat once the server has the information. If this is a bad choice, please discipline me and show me how to fix it.
* Character Select now checks for whether the character is hidden or not on menu load and does/undoes it based on that info, but will never touch one disabled via SOC. I also used this opportunity to optimise, checking for/filling out charsel pictures instead of doing it later. (It now also includes special casing for a select screen with zero characters!)
* Mode Attack now hides hidden characters in its character select based on SP rules.

Things that still need to be done:
* ForceSkin_OnChange. Is there a graceful way to handle this?
* No obvious skin name conflicts. Add a salt to the names of hidden skins, and then remove it when they're unhidden?
* The gap between Knuckles' skin number and the first custom character anybody adds will be way too obvious. A seperate hidden skin numbering system? Start at 32 and count up from there? There's a few ways...
2016-07-12 03:15:58 +01:00