--this still has some stuff commented out that need to be fixed
		addHook("PlayerThink", function(player)
		if player.mo.skin == "thokko"
		and not player.overlay
		player.overlay = P_SpawnMobjFromMobj(player.mo, 0, 0, 0, MT_THOKERLAY)
		--player.mo.chthok = 0
	end
end)
		addHook("PlayerSpawn", function(player)
		if player.mo.skin == "thokko"
		player.overlay = P_SpawnMobjFromMobj(player.mo, 0, 0, 0, MT_THOKERLAY)
		--player.mo.chthok = 0
	end
end)
		addHook("PlayerThink", function(player)
		if player.mo.skin == "thokko"
		and (player.mo.state == S_PLAY_PAIN or player.mo.state == S_PLAY_DEAD or player.mo.state == S_PLAY_DRWN)
		player.overlay.state = S_THPN_0
	end
	if player.mo.skin == "thokko"
	and (player.mo.state == S_PLAY_WAIT)
	player.overlay.state = S_THBR_0
	end
	local range = P_RandomRange(1, 150)
	if player.mo.skin == "thokko"
	and range == 69
player.overlay.state = S_TBLN_0
		end
end)
		addHook("PlayerThink", function(player)
		if player.mo.skin == "thokko"
	local trail = P_SpawnGhostMobj(player.mo)
	trail.fuse = 2
	trail.destscale = 2*FRACUNIT
	trail.state = S_PLAY_STND
	trail.color = player.mo.color
	trail.blendmode = AST_ADD
	local trail2 = P_SpawnMobj(player.mo.x, player.mo.y, player.mo.z, MT_GHOST)
	trail2.fuse = 4
	trail2.destscale = 0
	trail2.state = S_THOK
	trail2.color = player.mo.color
		player.overlay.angle = player.mo.angle + ANGLE_90
		local bapz = player.mo.z+FixedMul(10*FRACUNIT + player.mo.momz/2, sin(player.aiming))
		local bapx = player.mo.x+FixedMul(10*FRACUNIT, cos(player.mo.angle))
		local bapy = player.mo.y+FixedMul(10*FRACUNIT, sin(player.mo.angle))
		P_TeleportMove(player.overlay, bapx, bapy, bapz)
	end /*
	 if player.speed > skins[player.realmo.skin].normalspeed - 2*FRACUNIT
	 		local dust = P_SpawnMobjFromMobj(player.realmo, P_RandomRange(-6, 6) * FRACUNIT, P_RandomRange(-6, 6) * FRACUNIT, 0, MT_THOK)
			dust.momx = P_RandomRange(-4, 4)*FRACUNIT
			dust.momy = P_RandomRange(-4, 4)*FRACUNIT
			dust.momz = P_RandomRange(0, 8)*FRACUNIT
			dust.destscale = 0*FRACUNIT
			dust.scale = 1*FRACUNIT/2
			dust.color = player.mo.color
			P_InstaThrust(dust, player.drawangle, -20*FRACUNIT) 
	 end */
end)

	addHook("PostThinkFrame", function()
    for player in players.iterate
	if player.mo.skin == "thokko"
       player.mo.frame = $|FF_TRANS80
	   player.mo.frame = $|FF_ADD
	   end
    end
end)

/*
addHook("PlayerThink", function(player)
    if player.mo.skin == "thokko"
    and not (player.pflags & PF_THOKKED)
	and (player.pflags & PF_JUMPED)
	and (player.cmd.buttons & BT_USE)
	P_SetObjectMomZ(player.mo, 0, true) 
	player.mo.chthok = $ + 1*FRACUNIT/2
	 		local fx = P_SpawnMobjFromMobj(player.realmo, P_RandomRange(-6, 6) * FRACUNIT, P_RandomRange(-6, 6) * FRACUNIT, 0, MT_THOK)
			fx.momx = P_RandomRange(-10, 10)*FRACUNIT
			fx.momy = P_RandomRange(-10, 10)*FRACUNIT
			fx.momz = P_RandomRange(0, 10)*FRACUNIT
			fx.destscale = 0*FRACUNIT
			fx.scale = 1*FRACUNIT/4
			fx.color = player.mo.color 
end
    if player.mo.skin == "thokko"
    and not (player.pflags & PF_THOKKED)
	local bup = P_SpawnMobj(player.mo.x, player.mo.y, player.mo.z, MT_GHOST)
	bup.scale = 2*FRACUNIT
	bup.destscale = 0
	bup.color = player.mo.color
    P_InstaThrust(player.mo, player.mo.angle, player.mo.chthok/2) 
    P_SetObjectMomZ(player.mo, player.speed/10, true) 
    P_SpawnThokMobj(player)
    S_StartSound(player.mo, sfx_thok)
    player.pflags = $|PF_THOKKED 
	player.mo.chthok = 0
    end
	if player.mo.chthok > 150*FRACUNIT
	  player.pflags = $|PF_THOKKED 
	  player.mo.chthok = 0
	end
	if P_IsObjectOnGround(player.mo)
	player.mo.chthok = 0
	end
end)
*/

addHook("PlayerThink", function(player) 
    if player.speed > skins[player.realmo.skin].normalspeed - 2*FRACUNIT
	if not player.mo.skin == "thokko" then return end
	if player.speed < 150*player.mo.scale --speed cap because you could noclip to the backrooms if you go 2 fest
   player.mo.friction = FRACUNIT
			end
	if (not player.cmd.buttons) and (player.cmd.forwardmove == 0) and (player.cmd.sidemove == 0) --thanks speccy
	player.mo.friction = 59392 
		end
	end
	if player.mo.skin == "thokko"
	and (player.pflags & PF_JUMPED) and (player.pflags & PF_SPINNING) then
		player.pflags = $1 & ~PF_SPINNING
		end
			if player.mo.state == S_PLAY_SPRING
			and player.mo.skin == "thokko"
			and (player.pflags & PF_JUMPED)
			--and (player.pflags & PF_JUMPDOWN)
			and not (player.mo.eflags & MFE_SPRUNG)
				P_Thrust(player.mo, player.mo.angle, player.speed)
				P_SetObjectMomZ(player.mo, 6*FRACUNIT, false)
				player.mo.state = S_PLAY_JUMP
  end
  if P_LookForEnemies(player)
  and player.mo.skin == "thokko"
  player.charability = CA_HOMINGTHOK
  end
  if not P_LookForEnemies(player)
  and player.mo.skin == "thokko"
  player.charability = CA_THOK
  end
end)

addHook("SpinSpecial", function(player)
    if player.mo.skin == "thokko"
	and P_IsObjectOnGround(player.mo)
	and not (player.pflags & PF_SPINDOWN)
    P_Thrust(player.mo, player.mo.angle, 10*FRACUNIT)  
    P_SpawnThokMobj(player)
    S_StartSound(player.mo, sfx_thok) 
    end
end)

			addHook("PlayerSpawn", function(player)
			if player.mo.skin == "thokko"
		player.mo.timer = 0
			end
		end)
		addHook("SpinSpecial", function(player)
		if player.mo.skin == "thokko"
		and not (player.pflags & PF_THOKKED)
		and not player.powers[pw_shield]
		and not (player.pflags & PF_FULLSTASIS)
		and (player.pflags & PF_JUMPED)
		and not (player.mo.state == S_PLAY_PAIN)
		and (P_IsObjectOnGround(player.mo) == false) then
		player.mo.timer = $ + 1
		S_StartSound(player.mo, sfx_spndsh)
	end
end)
		addHook("PlayerThink", function(player)
	if player.mo.timer == 1*TICRATE/3
		player.mo.timer = 0
		S_StartSound(player.mo, sfx_zoom) 
		P_SetObjectMomZ(player.mo, -30*FRACUNIT)
		player.mo.state = S_PLAY_ROLL
		player.charge = true
		player.pflags = $|PF_THOKKED
end		
if P_IsObjectOnGround(player.mo)
player.mo.timer = 0
	end
		if player.mo.skin == "thokko"
		and player.speed < 45*FRACUNIT
		and player.charge == true
		and (P_IsObjectOnGround(player.mo) == true) then
				S_StartSound(player.mo, sfx_zoom)
				player.mo.state = S_PLAY_ROLL
				player.charge = false
				P_NukeEnemies(player.mo, player.mo, 500*FRACUNIT)
				P_StartQuake(2*FRACUNIT, 4)
				P_SetObjectMomZ(player.mo, 10*FRACUNIT)
		end
	end)
addHook("JumpSpinSpecial", function(player)
    if player.mo.skin == "thokko"
	and (player.pflags & PF_JUMPDOWN)
	and not (player.pflags & PF_THOKKED)
    P_SetObjectMomZ(player.mo, 20*FRACUNIT, true) 
    P_SpawnThokMobj(player)
    S_StartSound(player.mo, sfx_thok) 
	player.pflags = $|PF_THOKKED 
    end
end)