function init()
	nocd = GetBool("savegame.mod.nocd")
	invert = GetBool("savegame.mod.invert")
end

function draw()
	UiTranslate(UiCenter(), 350)
	UiAlign("center middle")

	UiFont("bold.ttf", 48)
	UiText("Atomic AC-130 Options")
	UiFont("regular.ttf", 26)
	UiTranslate(0, 70)
	UiPush()
		UiText("No Cooldown")
		UiTranslate(-20, 40)
		UiAlign("centre")
		UiColor(0.5, 0.8, 1)
		if nocd then
			if UiTextButton("Yes", 20, 20) then
				nocd = false
				SetBool("savegame.mod.nocd", nocd)
			end
		else
			if UiTextButton("No", 20, 20) then
				nocd = true
				SetBool("savegame.mod.nocd", nocd)
			end
		end
	UiTranslate(20,50)
	UiPush()
		UiAlign("center")
		UiColor(1, 1, 1)
		UiText("Invert Mouse")
		UiTranslate(0, 30)
		UiText("(gun camera only)")
		UiTranslate(-20, 40)
		UiAlign("centre")
		UiColor(0.5, 0.8, 1)
		if invert then
			if UiTextButton("No", 20, 20) then
				invert = false
				SetBool("savegame.mod.invert", invert)
			end
		else
			if UiTextButton("Yes", 20, 20) then
				invert = true
				SetBool("savegame.mod.invert", invert)
			end
		end
		
	--Nuclear Shockwave Size Slider
	UiPush()
		UiTranslate(-90,40)
		UiColor(1, 1, 1)
		UiText("Nuclear Shockwave Size")
		UiTranslate(0,40)
		local CurVal,MaxVal = optionsSlider("savegame.mod.desiredSize",40,100)
		UiTranslate(MaxVal+20,0)
		UiText(tostring(Round(CurVal/10,0,0)).."/"..tostring(MaxVal/10))
	UiPop()
	if GetInt("savegame.mod.desiredSize") > 49 then
		UiPush()
		UiTranslate(-240,110)
		UiColor(1, 0, 0)
		UiText("WARNING: Large shockwaves will cause significant lag!")
		UiPop()
	end
	if GetInt("savegame.mod.desiredSize") > 89 then
		UiPush()
		UiTranslate(-50,150)
		UiColor(1, 0, 0)
		UiText("Are you crazy?")
		UiPop()
	end
	
	--Close Menu Button
	UiButtonImageBox("ui/common/box-outline-6.png", 6, 6)
	UiTranslate(-10, 250)
	if UiTextButton("Close", 80, 40) then
		Menu()
	end
end

--Bespoke Slider for Atomic AC-130 Options
function optionsSlider(key,min,max)
	UiPush()
		UiTranslate(min,-8)
		local rv = GetInt(key)
		if (rv > max) then
			SetInt(key,max)
			rv = max
		elseif (rv < min) then
			SetInt(key,min)
			rv = min
		end
		UiRect(max-min,3)
		UiAlign("center middle")
		UiTranslate(-min,-8)
		local nsv,done = UiSlider("ui/common/dot.png","x",rv,min,max)
		if (nsv ~= rv) then
			if (nsv == 0) then
				SetInt(key,1) -- Cannot be zero.
			else
				SetInt(key,nsv)
			end
		end
	UiPop()
	return rv,max
end

--Simple maths rounding function for options slider
function Round(value, decimals, overflow)
	decimals = decimals or 0
	overflow = overflow or .5
	return math.floor((value + overflow) * 10 ^ decimals) / 10 ^ decimals
end