local reloaded_0_0 = {}

reloaded_0_0.Difference = 0

function reloaded_0_0.Doubletap()
	return ui.find("Aimbot", "Ragebot", "Main", "Double Tap"):get() and true or false
end

function reloaded_0_0.Hideshots()
	return ui.find("Aimbot", "Ragebot", "Main", "Hide Shots"):get() and true or false
end

function reloaded_0_0.Active()
	return (reloaded_0_0.Hideshots() or reloaded_0_0.Doubletap()) and true or false
end

function reloaded_0_0.SimulationDifference()
	return to_ticks(entity.get_local_player():get_simulation_time().current - entity.get_local_player():get_simulation_time().old)
end

function reloaded_0_0.InRecharge()
	return reloaded_0_0.Active() and rage.exploit:get() > 0 and rage.exploit:get() < 1
end

function reloaded_0_0.Ready()
	return reloaded_0_0.Active() and not reloaded_0_0.InRecharge()
end

function reloaded_0_0.EnableRecharge()
	return rage.exploit:allow_charge(true)
end

function reloaded_0_0.DisableRecharge()
	return rage.exploit:allow_charge(false)
end

function reloaded_0_0.AllowDefensive(arg_9_0)
	return rage.exploit:allow_defensive(arg_9_0)
end

function reloaded_0_0.ForceTeleport()
	return rage.exploit:force_teleport()
end

function reloaded_0_0.ForceRecharge()
	return rage.exploit:force_charge()
end

function reloaded_0_0.OverrideMaxProcessTicks(arg_12_0)
	return math.clamp(cvar.sv_maxusrcmdprocessticks:set(arg_12_0), 16, 62)
end

function reloaded_0_0.InDefensive()
	return reloaded_0_0.Active() and reloaded_0_0.ShiftAmount > 1 and reloaded_0_0.ShiftAmount < 14
end

function reloaded_0_0.GetMaxProcessCmds()
	return cvar.sv_maxusrcmdprocessticks:int() - 2 - cmd.choked_commands
end

function reloaded_0_0.GetNetworkedTickbase()
	return entity.get_local_player().m_nTickBase
end

function reloaded_0_0.LostTrackByServer()
	local reloaded_16_0 = math.clamp(cvar.cl_updaterate:float(), cvar.sv_minupdaterate:float(), cvar.sv_maxupdaterate:float())
	local reloaded_16_1 = math.clamp(cvar.cl_interp_ratio:float(), cvar.sv_client_min_interp_ratio:float(), cvar.sv_client_max_interp_ratio:float())
	local reloaded_16_2 = math.clamp(reloaded_16_1 / reloaded_16_0, cvar.cl_interp:float(), 1)

	return to_time(globals.tickcount) - reloaded_16_2 + to_time(cvar.sv_lagpushticks:int()) >= entity.get_local_player():get_simulation_time().current
end

function reloaded_0_0.PredictTickbaseChanges(arg_17_0)
	if arg_17_0.command_number == reloaded_0_0.ShiftCommandNumber then
		function reloaded_0_0.GetPredictedTickbase()
			return entity.get_local_player().m_nTickBase
		end

		reloaded_0_0.ShiftAmount = math.clamp(math.abs(entity.get_local_player().m_nTickBase - reloaded_0_0.Difference), 0, cvar.sv_maxusrcmdprocessticks:int() - 2 - arg_17_0.choked_commands)
		reloaded_0_0.Difference = math.max(entity.get_local_player().m_nTickBase, reloaded_0_0.Difference or 0)
		reloaded_0_0.ShiftCommandNumber = 0
	end
end

events.createmove(function(arg_19_0)
	function reloaded_0_0.ForceDefensive()
		arg_19_0.force_defensive = true
	end

	reloaded_0_0.ShiftCommandNumber = arg_19_0.command_number
end)
events.createmove_run(function(arg_21_0)
	reloaded_0_0.PredictTickbaseChanges(arg_21_0)
end)
events.level_init:set(function()
	reloaded_0_0.Difference, reloaded_0_0.ShiftAmount = 0, 0
end)

return reloaded_0_0
