freeslot("sfx_redscr")

addHook("PlayerThink", function(player)
	if player.mo
	and player.mo.valid
	and player.playerstate == PST_LIVE
		if player.mo.red_jumpscare == nil
			player.mo.red_jumpscare = 0
		elseif player.mo.red_jumpscare > 0
			player.mo.red_jumpscare = $-1
			
			if player.mo.red_jumpscare == 24
				S_StartSound(player.mo, sfx_redscr)
			end
		end
	end
end)

local shakex = 0
local shakey = 0

addHook("PlayerThink", function(player)
    if player.mo and player.mo.valid then
		shakex = P_RandomRange(-5, 5)
        shakey = P_RandomRange(-5, 5)
    end
end)

local function red_jumpscare(v, player)
    if player.mo and player.mo.valid then
        if not (player.mo.red_jumpscare) then return end
		local redjump = v.cachePatch("RDSCAR"+tostring((9-(player.mo.red_jumpscare+2)/3)%9))
        v.drawFill()
        if player.mo.red_jumpscare then
            v.draw(shakey,shakex,redjump,V_OFFSET)
        end
    end
end

hud.add(red_jumpscare, "game")

addHook("LinedefExecute", function(line, mo, sector)
	if mo
	and mo.valid
	and mo.player
	and mo.player.playerstate == PST_LIVE
		if mo.red_jumpscare != nil
		mo.red_jumpscare = 25
		end
	end
end, "RDSCARE")