-- Sls by Sls64LGamingBro (an OC I created)
-- This was created for all though in SLADE
-- Also, i created some of the stuff as well

-------

-- This is kinda NOT reusable at all
-- Which is the same thing staromentum
-- anyways, enjoy!


//ALT_Sls Color
freeslot("SKINCOLOR_ALT_SLS")
skincolors[SKINCOLOR_ALT_SLS] = {
    name = "ALT_Sls",
    ramp = {1,2,3,4,6,8,9,10,11,13,14,15,16,17,18,19},
    invcolor = SKINCOLOR_WHITE,
    invshade = 9,
    chatcolor = V_GRAYMAP,
    accessible = true
}


//Air Boost
addHook("PlayerThink", function(player)
	if player.mo and player.mo.skin == "sls"
	    if (player.mo.state == S_PLAY_JUMP)
		and (player.cmd.buttons & BT_SPIN)
		and not (player.powers[pw_shield])
           P_SpawnGhostMobj(player.mo)
		   player.powers[pw_invulnerability] = TICRATE/2
		   player.mo.state = S_PLAY_SPRING
		   P_SetObjectMomZ(player.mo, 16*FRACUNIT)
		   player.pflags = $ & ~PF_STARTJUMP
		   S_StartSound(player.mo, sfx_zoom)
		end
	end
end)


//Floating
addHook("PlayerThink", function(player)
	if player.mo and player.mo.skin == "sls"
	    if (player.pflags & PF_JUMPED)
		and (player.cmd.buttons & BT_CUSTOM2)
		and (player.powers[pw_super])
           P_SpawnGhostMobj(player.mo)
		   player.powers[pw_invulnerability] = TICRATE/4
		   player.mo.state = S_PLAY_NIGHTS_FLY
		   P_SetObjectMomZ(player.mo, 0*FRACUNIT)
		end
	end
end)


//Dash Fall
addHook("PlayerThink", function(player)
	if player.mo and player.mo.skin == "sls"
	    if (player.mo.state == S_PLAY_JUMP)
		and (player.cmd.buttons & BT_CUSTOM1)
           P_SpawnGhostMobj(player.mo)
		   player.mo.state = S_PLAY_FALL
		   S_StartSound(player.mo, sfx_thok)
		   S_StartSound(player.mo, sfx_zoom)
		   P_Thrust(player.mo, player.mo.angle, 12*FRACUNIT)
		end
	end
end)


//No Drowning when Super
addHook("ThinkFrame", do
	for player in players.iterate
		if player.mo and player.mo.skin == "sls"
			if player.powers[pw_super] == 0
				player.powers[pw_underwater] = 0
				player.powers[pw_spacetime] = 0
			end
		end
	end
end)
