freeslot("SPR_PEEL")

addHook("ThinkFrame", do
	for player in players.iterate
		if (player.mo.valid) and (player.mo.skin == "crystalsonic")			
			if not player.mo.superpeel
				player.mo.superpeel = false
			end
			if player.mo.state == S_PLAY_SUPERDASH
		//	and player.mo.speedreached
			and not player.powers[pw_super]
				player.mo.superpeel = true
			else
				player.mo.superpeel = false
			end
			if player.mo.superpeel == true
				local force = FRACUNIT*10
				local angle = ANGLE_90

				local shiftx = FixedMul(cos(player.drawangle + angle), force)
				local shifty = FixedMul(sin(player.drawangle + angle), force)

				local shiftx2 = FixedMul(cos(player.drawangle + angle), 8*FRACUNIT)
				local shifty2 = FixedMul(sin(player.drawangle + angle), 8*FRACUNIT)
				
				local shiftx3 = FixedMul(cos(player.drawangle + angle), 9*FRACUNIT)
				local shifty3 = FixedMul(sin(player.drawangle + angle), 9*FRACUNIT)
				
				local shiftx4 = FixedMul(cos(player.drawangle + angle), 7*FRACUNIT)
				local shifty4 = FixedMul(sin(player.drawangle + angle), 7*FRACUNIT)
				
				local shiftx5 = FixedMul(cos(player.drawangle + angle), 10*FRACUNIT)
				local shifty5 = FixedMul(sin(player.drawangle + angle), 10*FRACUNIT)

				player.peelout1 = P_SpawnMobj(player.mo.x - shiftx, player.mo.y - shifty, player.mo.z, MT_THOK)
				player.peelout1.color = player.mo.color
				player.peelout1.blendmode = AST_ADD
				player.peelout1.fuse = 1
				player.peelout1.sprite = SPR_PEEL
				player.peelout1.frame = player.mo.frame
				player.peelout1.renderflags = RF_PAPERSPRITE
				player.peelout1.angle = player.drawangle + ANG15
				player.peelout1.scale = player.mo.scale/2
				if player.mo.eflags & MFE_VERTICALFLIP
					player.peelout1.eflags = $ | MFE_VERTICALFLIP
					player.peelout1.z = player.mo.z + player.mo.height - player.peelout1.height
				end
				
				player.peelout2 = P_SpawnMobj(player.mo.x + shiftx, player.mo.y + shifty, player.mo.z, MT_THOK)
				player.peelout2.color = player.mo.color
				player.peelout2.blendmode = AST_ADD
				player.peelout2.fuse = 1
				player.peelout2.sprite = SPR_PEEL
				player.peelout2.frame = player.mo.frame
				player.peelout2.renderflags = RF_PAPERSPRITE
				player.peelout2.angle = player.drawangle - ANG15
				player.peelout2.scale = player.mo.scale/2
				if player.mo.eflags & MFE_VERTICALFLIP
					player.peelout2.eflags = $ | MFE_VERTICALFLIP
					player.peelout2.z = player.mo.z + player.mo.height - player.peelout2.height
				end
				
				player.peelout3 = P_SpawnMobj(player.mo.x - shiftx2, player.mo.y - shifty2, player.mo.z, MT_THOK)
				player.peelout3.color = player.mo.color
				player.peelout3.blendmode = AST_ADD
				player.peelout3.fuse = 1
				player.peelout3.sprite = SPR_PEEL
				player.peelout3.frame = player.mo.frame
				player.peelout3.renderflags = RF_PAPERSPRITE
				player.peelout3.angle = player.drawangle + ANG15
				player.peelout3.scale = player.mo.scale/2
				if player.mo.eflags & MFE_VERTICALFLIP
					player.peelout3.eflags = $ | MFE_VERTICALFLIP
					player.peelout3.z = player.mo.z + player.mo.height - player.peelout3.height
				end
				
				player.peelout4 = P_SpawnMobj(player.mo.x + shiftx2, player.mo.y + shifty2, player.mo.z, MT_THOK)
				player.peelout4.color = player.mo.color
				player.peelout4.blendmode = AST_ADD
				player.peelout4.fuse = 1
				player.peelout4.sprite = SPR_PEEL
				player.peelout4.frame = player.mo.frame
				player.peelout4.renderflags = RF_PAPERSPRITE
				player.peelout4.angle = player.drawangle - ANG15
				player.peelout4.scale = player.mo.scale/2
				if player.mo.eflags & MFE_VERTICALFLIP
					player.peelout4.eflags = $ | MFE_VERTICALFLIP
					player.peelout4.z = player.mo.z + player.mo.height - player.peelout4.height
				end
				
				player.peelout5 = P_SpawnMobj(player.mo.x - shiftx3, player.mo.y - shifty3, player.mo.z, MT_THOK)
				player.peelout5.color = player.mo.color
				player.peelout5.blendmode = AST_ADD
				player.peelout5.fuse = 1
				player.peelout5.sprite = SPR_PEEL
				player.peelout4.frame = player.mo.frame
				player.peelout5.renderflags = RF_PAPERSPRITE
				player.peelout5.angle = player.drawangle + ANG15
				player.peelout5.scale = player.mo.scale/2
				if player.mo.eflags & MFE_VERTICALFLIP
					player.peelout5.eflags = $ | MFE_VERTICALFLIP
					player.peelout5.z = player.mo.z + player.mo.height - player.peelout5.height
				end
				
				player.peelout6 = P_SpawnMobj(player.mo.x + shiftx3, player.mo.y + shifty3, player.mo.z, MT_THOK)
				player.peelout6.color = player.mo.color
				player.peelout6.blendmode = AST_ADD
				player.peelout6.fuse = 1
				player.peelout6.sprite = SPR_PEEL
				player.peelout6.frame = player.mo.frame
				player.peelout6.renderflags = RF_PAPERSPRITE
				player.peelout6.angle = player.drawangle - ANG15
				player.peelout6.scale = player.mo.scale/2
				if player.mo.eflags & MFE_VERTICALFLIP
					player.peelout6.eflags = $ | MFE_VERTICALFLIP
					player.peelout6.z = player.mo.z + player.mo.height - player.peelout6.height
				end
				
				player.peelout7 = P_SpawnMobj(player.mo.x - shiftx4, player.mo.y - shifty4, player.mo.z, MT_THOK)
				player.peelout7.color = player.mo.color
				player.peelout7.blendmode = AST_ADD
				player.peelout7.fuse = 1
				player.peelout7.sprite = SPR_PEEL
				player.peelout7.frame = player.mo.frame
				player.peelout7.renderflags = RF_PAPERSPRITE
				player.peelout7.angle = player.drawangle + ANG15
				player.peelout7.scale = player.mo.scale/2
				if player.mo.eflags & MFE_VERTICALFLIP
					player.peelout7.eflags = $ | MFE_VERTICALFLIP
					player.peelout7.z = player.mo.z + player.mo.height - player.peelout7.height
				end
				
				player.peelout8 = P_SpawnMobj(player.mo.x + shiftx4, player.mo.y + shifty4, player.mo.z, MT_THOK)
				player.peelout8.color = player.mo.color
				player.peelout8.blendmode = AST_ADD
				player.peelout8.fuse = 1
				player.peelout8.sprite = SPR_PEEL
				player.peelout8.frame = player.mo.frame
				player.peelout8.renderflags = RF_PAPERSPRITE
				player.peelout8.angle = player.drawangle - ANG15
				player.peelout8.scale = player.mo.scale/2
				if player.mo.eflags & MFE_VERTICALFLIP
					player.peelout8.eflags = $ | MFE_VERTICALFLIP
					player.peelout8.z = player.mo.z + player.mo.height - player.peelout8.height
				end
				
				player.peelout9 = P_SpawnMobj(player.mo.x - shiftx5, player.mo.y - shifty5, player.mo.z, MT_THOK)
				player.peelout9.color = player.mo.color
				player.peelout9.blendmode = AST_ADD
				player.peelout9.fuse = 1
				player.peelout9.sprite = SPR_PEEL
				player.peelout9.frame = player.mo.frame
				player.peelout9.renderflags = RF_PAPERSPRITE
				player.peelout9.angle = player.drawangle + ANG15
				player.peelout9.scale = player.mo.scale/2
				if player.mo.eflags & MFE_VERTICALFLIP
					player.peelout9.eflags = $ | MFE_VERTICALFLIP
					player.peelout9.z = player.mo.z + player.mo.height - player.peelout9.height
				end
				
				player.peelout10 = P_SpawnMobj(player.mo.x + shiftx5, player.mo.y + shifty5, player.mo.z, MT_THOK)
				player.peelout10.color = player.mo.color
				player.peelout10.blendmode = AST_ADD
				player.peelout10.fuse = 1
				player.peelout10.sprite = SPR_PEEL
				player.peelout10.frame = player.mo.frame
				player.peelout10.renderflags = RF_PAPERSPRITE
				player.peelout10.angle = player.drawangle - ANG15
				player.peelout10.scale = player.mo.scale/2
				if player.mo.eflags & MFE_VERTICALFLIP
					player.peelout10.eflags = $ | MFE_VERTICALFLIP
					player.peelout10.z = player.mo.z + player.mo.height - player.peelout10.height
				end
			end
		end
	end
end)