local function HABILITY(p)
if p.mo.skin == "sonic" and p.playerstate == PST_LIVE then

if p.mo.state == S_PLAY_JUMP then
//if (p.pflags & PF_JUMPED) and (p.pflags & PF_THOKKED) then
//P_SpawnGhostMobj(p.mo)
//end
end
//p.actionspd = skins[p.mo.skin].actionspd + p.speed

if p.control and (p.pflags & PF_JUMPED) and (p.cmd.buttons & BT_SPIN) and (p.powers[pw_super]) and ((p.mo.momz < 0 and P_MobjFlip(p.mo) == 1) or (p.mo.momz > 0 and P_MobjFlip(p.mo) == -1)) then
p.mo.momz = 1*P_MobjFlip(p.mo)
end

/*
if p.control then
for i=0,15
P_SpawnParaloop(p.mo.x, p.mo.y, p.mo.z + p.mo.height, FixedMul(p.mo.info.painchance, p.mo.scale), 16, MT_NIGHTSPARKLE, i*ANGLE_22h, S_NULL, true)
end
end
*/

end
end
addHook("PlayerThink", HABILITY)


addHook("AbilitySpecial", function(player)
	if player.mo.skin == "sonic" and player.charability == CA_THOK then
	P_InstaThrust(player.mo, player.drawangle, player.actionspd + player.speed)
	P_SpawnThokMobj(player)
	S_StartSound(player.mo, sfx_thok ,player)
	return true
	end
end)