freeslot("SKINCOLOR_BARONBLOOD", "sfx_dbljmp")

skincolors[SKINCOLOR_BARONBLOOD] = { // darkest green
    name = "Praetor",
    ramp = {104,105,106,107,108,109,110,111,119,119,119,119,119,119,119,119},
    invcolor = SKINCOLOR_RED,
    invshade = 9,
    chatcolor = V_GREENMAP,
    accessible = true
}

function A_InterpolatedTrail(actor, var1, var2) // Thank you Princess Plushima

	for i = 0, var1
		P_SpawnMobj(actor.x-((actor.momx/var1)*i),actor.y-((actor.momy/var1)*i), actor.z-((actor.momz/var1)*i), var2)
	end

end

addHook("ThinkFrame", do // makes it so you dont need to breathe in space
	for player in players.iterate
	if player.mo.valid
	and not (player.powers[pw_underwater])
	and(player.mo.skin == "doomguy") then
	player.powers[pw_spacetime] = 233232233
		end
	end
end)

addHook("AbilitySpecial", function(player) // double jump
	if player.mo and player.mo.skin == "doomguy"
	and not (player.pflags & PF_THOKKED)
	and not (player.exiting)
	and (P_IsObjectOnGround(player.mo) == false)
	player.mo.state = S_PLAY_JUMP
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-10, 10)*FRACUNIT, -5*FRACUNIT, 0, MT_SPINDUST)
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-10, 10)*FRACUNIT, -5*FRACUNIT, 0, MT_SPINDUST)
	player.pflags = $|PF_JUMPED|PF_THOKKED|PF_STARTJUMP
	S_StartSound(player.mo, sfx_dbljmp)
	if (player.powers[pw_underwater]) // halves vertical momentum when underwater
	P_SetObjectMomZ(player.mo, 5*FRACUNIT)
	else
	P_SetObjectMomZ(player.mo, 10*FRACUNIT)
		end
	end
end)

if not(kirbyabilitytable) // thokin kirby stuff
	rawset(_G, "kirbyabilitytable", {})
end
kirbyabilitytable["doomguy"] = 4 //bomb

sfxinfo[sfx_dbljmp].caption = "Double Jump"

if srb2p return end // make sure its not persona
addHook("PlayerThink", function(player) // crouch
	if player.mo.skin == "doomguy"
	and not (player.exiting)
	and not G_RingSlingerGametype()
	if (player.cmd.buttons & BT_TOSSFLAG)
	player.height = 30*FRACUNIT
	player.spinheight = 30*FRACUNIT
	player.pflags = $|PF_STARTDASH
	player.mo.state = S_PLAY_CRAWL
	elseif player.height == 30*FRACUNIT
	and ((player.mo.ceilingz - player.mo.floorz) > skins[player.mo.skin].height + FRACUNIT)
	player.height = 56*FRACUNIT
	player.spinheight = 56*FRACUNIT
	player.mo.state = S_PLAY_STND
		end
	end
end)

addHook("PlayerThink", function(player) // crouch
	if player.mo.skin == "doomguy"
	and not (player.exiting)
	and not G_RingSlingerGametype()
	and player.height == 30*FRACUNIT
	player.mo.state = S_PLAY_CRAWL
	end
end)
