//Borrowed Miguel's core of the hard drop
local dodgecd =  3 * TICRATE /2
local downtime = 2 * TICRATE / 3

addHook("ThinkFrame", function()
	for player in players.iterate do
	-- initialize custom variables
	player.downtime = player.downtime or 0
	player.dodgecd = player.dodgecd or 0
	player.cantdodge = player.cantdodge or 0
	player.playdone = player.playdone or 0
	player.shutthefuckup = player.shutthefuckup or 0
	player.canreload = player.canreload or 0
	player.dodgespeed = player.dodgespeed or 20 * FRACUNIT
	
	if P_IsObjectOnGround(player.mo) and player.canreload == 0 then
		player.canreload = 1
		end
		-- Decrement cooldown if any
	if player.dodgecd and player.dodgecd >= 0 and player.canreload == 1 then
		player.dodgecd = player.dodgecd - 1
		player.cantdodge = 1
	else
		player.cantdodge = 0
		player.playdone = 0
		end
	if player.dodgecd and player.dodgecd == 1 and player.canreload == 1 then
		S_StartSound(player.mo, sfx_crll, player)
		player.dodgecd = player.dodgecd - 1
		end
		player.playdone = 0
	if player.downtime and player.downtime >= 0 and player.canreload == 1 then
		player.downtime = player.downtime - 1
		player.pflags = $|PF_JUMPSTASIS
		player.mo.colorized = true
	else
		player.mo.colorized = false
		end

	if player.mo and player.mo.valid and player.mo.skin == "superguide" and not player.powers[pw_super] and player.dodgecd <= 0 and not (gametype == GT_LTMMURDERMYSTERY) then

	if (player.cmd.buttons & BT_CUSTOM2) ~= 0 then
		P_InstaThrust(player.mo, player.mo.angle, FixedMul(player.dodgespeed, player.mo.scale)) -- do the fucking dash
		player.canreload = 0
		player.powers[pw_flashing] = 18
		P_SetObjectMomZ(player.mo, 4 * FRACUNIT)
		S_StartSound(player.mo, sfx_grll)
		player.mo.state = S_PLAY_ROLL
		player.dodgecd = dodgecd
		player.downtime = downtime
		player.stalltimer = 0
	end
	if not player.mo.skin == "superguide" then
	player.stalltimer = 0
	player.cantdodge = 0
	player.playdone = 0
	player.canreload = 1
	end
end
end
end)