local glidespeed = 0 local strength = 0 addHook("JumpSpecial", function(player) --snappier glide if player.mo.skin != "knuckles" then return end if player.speed > player.actionspd then --glidespeed checks if player.speed > 48*FRACUNIT then glidespeed = 48*FRACUNIT else glidespeed = player.speed end else glidespeed = player.actionspd end if (player.pflags & PF_GLIDING) --instathrust glide and player.glidetime == 1 then P_InstaThrust(player.mo, player.mo.angle, glidespeed) if player.mo.momz >= 0 then --reset vertical movement if moving up player.mo.momz = -1*FRACUNIT elseif player.mo.momz < 0 then --increase downwards movement on glide start if moving down player.mo.momz = $-3*FRACUNIT end end end) addHook("SpinSpecial", function(player) --glide cancel if player.mo.skin != "knuckles" then return end if player.mo.eflags & MFE_UNDERWATER then --lower strength if underwater strength = 2*FRACUNIT else strength = 4*FRACUNIT end if player.pflags & PF_GLIDING and not (player.lastbuttons & BT_SPIN) then S_StartSound(player.mo, 14) player.mo.state = S_PLAY_ROLL player.pflags = $ & ~PF_GLIDING player.pflags = $|PF_JUMPED|PF_THOKKED player.mo.momz = strength end end)