local function BetterSonic(player) if player.mo.skin ~= "sonic" then return end player.charability = CA_JUMPTHOK player.normalspeed = 45*FRACUNIT player.maxspeed = 70*FRACUNIT player.actionspd = player.speed + 15*FRACUNIT end local function BetterTails(player) if player.mo.skin ~= "tails" then return end if player.mo.state == S_PLAY_FLY and (player.cmd.buttons & BT_SPIN) or player.mo.state == S_PLAY_SWIM and (player.cmd.buttons & BT_SPIN) then player.mo.state = S_PLAY_JUMP player.pflags = $ + PF_SPINNING end end local function BetterMetal(player) if player.mo.skin ~= "metalsonic" then return end player.charability = CA_SLOWFALL player.normalspeed = 45*FRACUNIT player.maxdash = 60*FRACUNIT end local function BetterAmy(player) if player.mo.skin ~= "amy" then return end player.charability = CA_TWINSPIN player.charability2 = CA2_SPINDASH player.normalspeed = 37*FRACUNIT player.maxdash = 45*FRACUNIT player.mindash = 32*FACUNIT end local function BetterFang(player) if player.mo.skin ~= "fang" then return end player.charability2 = CA2_SPINDASH player.normalspeed = 34*FRACUNIT player.maxdash = 45*FRACUNIT player.mindash = 32*FACUNIT end local function BetterKnux(player) if player.mo.skin ~= "knuckles" then return end if player.oldspeed == nil then player.oldspeed = player.speed end if player.mo.state == S_PLAY_GLIDE then player.oldspeed = player.speed end if player.mo.state == S_PLAY_GLIDE_LANDING then player.mo.state = S_PLAY_RUN P_InstaThrust(player.mo, player.mo.angle, player.oldspeed) end end addHook("PlayerThink", BetterSonic) addHook("PlayerThink", BetterTails) addHook("PlayerThink", BetterMetal) addHook("PlayerThink", BetterKnux) addHook("PlayerThink", BetterAmy) addHook("PlayerThink", BetterFang)