/*════════════════════════════╗════════════════════════════════════════════════════════════════════════════════════════════════╗
║     SKIN-SPECIFIC HOOKS    ║ I'll put some custom character hooks so other people can take note of how to add their own.	   ║
╚════════════════════════════╝═════════════════════════════════════════════════════════════════════════════════════════════════║
║												[DOCUMENTATION LINK]														   ║
║		  There's extra info on custom character support documented here, though copy-pasting any of this is totally fine.	   ║
║					  https://docs.google.com/document/d/1qsdKvVtm__wwlC9Jl4Ibc20onf7jkUx_rDFPqx4UnZ8						   ║
╚══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
GS Rails has a system to let you create custom "hooks" that only affect your own characters. 
You can look at the other specific skin files for reference. Adventure Sonic's shows and explains every possible custom hook type.

═══════════════════════════════-- First, a legend on my coding style --═══════════════════════════════════════
p: refers to player and will always be valid
s: refers to player.mo and will always be valid
GS: refers to player.mo.GSgrind and will always be valid, unless you've forcibly deleted it yourself.
rail: refers to player.mo.GSgrind.myrail. This will NOT always be valid!

Note that you may name these whatever you personally prefer.
══════════════════════════════════════════════════════════════════════════════════════════════════════════════*/
local RAIL = GS_RAILS if RAIL.blockload return end 

--First, add this table if it doesn't exist yet.
if GS_RAILS_SKINS==nil rawset(_G,"GS_RAILS_SKINS",{}) end

--Default grinding stats! Any stats you don't specify in a rails "S_SKIN" default to these.
--CANCROUCH and AUTOBALANCE are exceptions. By default, anyone with grind sprites has CANCROUCH, otherwise they get AUTOBALANCE.
GS_RAILS_SKINS["Default"] = {
JUMP = true, --You can jump off rails with the jump button!
JUMPBOOST = true, --Gain a minor jumpboost when jumping off a rail? (Up to a certain limit.)
AIRDRAG = 44, --Airdrag time in tics after hopping off a rail. (35 tics = 1 second)

SIDEHOP = 36, --Specifies the speed of your sidehop speed. If 0, you can't sidehop at all!
SIDEHOPARC = 0, --If not 0, adds a vertical arc when sidehopping, creating an "arced" sidehop like in modern games.
SIDEFLIP = nil, --Do a Modern-style sideflip? Specify a sprite here to use for it! (I recommend SPR2_SPNG for most chars)
SIDEHOPTIME = 9, --How many tics your sidehop is considered active. If you have a slow sidehop, you probably want more time.

EMERGENCYDROP = true, --If true, you can press CUSTOM3 to emergency-drop through rails.
CROUCH = true, --If true, you can "Focus Grind" by holding SPIN, gaining more favorable slope momentum at the cost of balance.
CROUCHBUTTON = BT_SPIN, --Button to Focus Grind with. If set to BT_SPIN|BT_CUSTOM1, for example, it'd be either SPIN or CUSTOM1! 
AUTOBALANCE = false, --You auto-balance on rails, losing less speed and making it near-impossible to fall off.
SLOPEPHYSICS = true, --If false, slope physics are ignored.
MUSTBALANCE = false, --The character must always balance as if crouching, risking falling off at all times like in SA2!

SLOPEMULT = 0, --Percentage modifier of slope momentum. 10 would add 10% more, while -20 would reduce the effect by 20%.
LAUNCHPOWER = 0, --Percentage modifier of vertical rail-flings. 10 would add 10% more height, while -20 would reduce it by 20%.
STARTMODIFIER = 0, --Speed percentage modifier when attaching to rails. 10 would increase speed by 10%, while -20 decreases it 20%
STARTSPEEDCONDITION = 0, --Minimum Speed you must be at before your start speed modifier takes place. If 0, defaults to 30.

HEROESTWIST = 15, --The boostpower of the "Twist Drive", diminishing overtime. If 1, it's cosmetic. If 0, you CAN'T Twist Drive!
TWISTBUTTON = 0, --What button to press to perform the "Twist Drive". If 0, it mimicks the crouch button.
ACCELSPEED = 0, --If not 0, you can forcibly accelerate on rails by simply holding forwards. Tails has this, for example.
ACCELCAP = 48, --This is the speed cap for your ACCELSPEED. Defaults to 48.
AUTODASHMODE = 72, --At what grinding speed you automatically enter dashmode if you have SF_DASHMODE.

MINSPEED = 0, --Minimum speed your character always has when grinding. If not 0, your character can NEVER reverse!
MAXSPEED = 180, --Your character won't gain more slopespeed than this. If 0, it's infinite.

---NOTE: For a list sprite2 animations, check: bit.ly/GSrailsprites

FORCESPRITE = nil, --Force a sprite2 when grinding, overriding both SPR2_GRND as well as the backup pose.
FORCEHANGSPRITE = nil, --Force a sprite2 when on hangrails, rather than SPR2_RIDE
WALLCLINGSPRITE = nil, --Use this sprite2 when readying for a walljump? Otherwise, picks sprite automatically.
NOWINDLINES = false, --If true, doesn't spawn windlines when moving fast on rails.
NOSIDEHOPGFX = 0, --If 1, only spawns sidehop ghosts. If 2, only spawns sidehop speedlines. If 3, spawns neither.
AUTOVERTICALAIM = true, --If set to false, vertical aim will not be autoadjusted while grinding. Loops/Sidecams excepted.
NOFUNALLOWED = false, --If true, your character cannot use dunce poses with TOSS FLAG.
}

