-- Bundled by luabundle {"version":"1.6.0"}
local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire)
	local loadingPlaceholder = {[{}] = true}

	local register
	local modules = {}

	local require
	local loaded = {}

	register = function(name, body)
		if not modules[name] then
			modules[name] = body
		end
	end

	require = function(name)
		local loadedModule = loaded[name]

		if loadedModule then
			if loadedModule == loadingPlaceholder then
				return nil
			end
		else
			if not modules[name] then
				if not superRequire then
					local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name)
					error('Tried to require ' .. identifier .. ', but no such module has been registered')
				else
					return superRequire(name)
				end
			end

			loaded[name] = loadingPlaceholder
			loadedModule = modules[name](require, loaded, register, modules)
			loaded[name] = loadedModule
		end

		return loadedModule
	end

	return require, loaded, register, modules
end)(nil)
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
require("core/MasterClueCounter")
end)
__bundle_register("core/MasterClueCounter", function(require, _LOADED, __bundle_register, __bundle_modules)
MIN_VALUE = -99
MAX_VALUE = 999

function onload(saved_data)
    light_mode = false
    val = 0

    if saved_data ~= "" then
        local loaded_data = JSON.decode(saved_data)
        light_mode = loaded_data[1]
        val = loaded_data[2]
    end
    p1ClueCounter = getObjectFromGUID("37be78")
    p2ClueCounter = getObjectFromGUID("1769ed")
    p3ClueCounter = getObjectFromGUID("032300")
    p4ClueCounter = getObjectFromGUID("d86b7c")

    timerID = self.getGUID()..math.random(9999999999999)
    Timer.create({
        identifier=timerID,
        function_name="totalCounters", function_owner=self,
        repetitions=0, delay=1
    })
    createAll()
end

function loadPlayerCounters()
  p1ClueCounter = getObjectFromGUID("37be78")
  p2ClueCounter = getObjectFromGUID("1769ed")
  p3ClueCounter = getObjectFromGUID("032300")
  p4ClueCounter = getObjectFromGUID("d86b7c")
end


function totalCounters()
    if p1ClueCounter == nil or p2ClueCounter == nil or p3ClueCounter == nil or p4ClueCounter == nil then
      loadPlayerCounters()
    end
    local p1ClueCount = p1ClueCounter.getVar("exposedValue")
    local p2ClueCount = p2ClueCounter.getVar("exposedValue")
    local p3ClueCount = p3ClueCounter.getVar("exposedValue")
    local p4ClueCount = p4ClueCounter.getVar("exposedValue")
    val = tonumber(p1ClueCount) + tonumber(p2ClueCount) + tonumber(p3ClueCount) + tonumber(p4ClueCount)
    updateVal()
    updateSave()
end

function updateSave()
    local data_to_save = {light_mode, val}
    saved_data = JSON.encode(data_to_save)
    self.script_state = saved_data
end

function createAll()
    s_color = {0.5, 0.5, 0.5, 95}

    if light_mode then
        f_color = {1,1,1,95}
    else
        f_color = {0,0,0,100}
    end

    self.createButton({
      label=tostring(val),
      click_function="removeAllPlayerClues",
      function_owner=self,
      position={0,0.05,0},
      height=600,
      width=1000,
      alignment = 3,
      tooltip = "Click button to remove all clues from all investigators",
      scale={x=1.5, y=1.5, z=1.5},
      font_size=600,
      font_color=f_color,
      color={0,0,0,0}
      })

    if light_mode then
        lightButtonText = "[ Set dark ]"
    else
        lightButtonText = "[ Set light ]"
    end

end

function removeAll()
    self.removeInput(0)
    self.removeInput(1)
    self.removeButton(0)
    self.removeButton(1)
    self.removeButton(2)
end

function removeAllPlayerClues()
  p1ClueCounter.call("removeAllClues")
  p2ClueCounter.call("removeAllClues")
  p3ClueCounter.call("removeAllClues")
  p4ClueCounter.call("removeAllClues")
end


function reloadAll()
    removeAll()
    createAll()
    updateSave()
end

function swap_fcolor(_obj, _color, alt_click)
    light_mode = not light_mode
    reloadAll()
end

function swap_align(_obj, _color, alt_click)
    center_mode = not center_mode
    reloadAll()
end

function editName(_obj, _string, value)
    self.setName(value)
    setTooltips()
end

function updateVal()
    self.editButton({
        index = 0,
        label = tostring(val),

        })
end

function reset_val()
    val = 0
    updateVal()
    updateSave()
end

function setTooltips()
    self.editInput({
        index = 0,
        value = self.getName(),
        tooltip = "Click button to remove all clues from all investigators"
        })
    self.editButton({
        index = 0,
        value = tostring(val),

        })
end

function null()
end

function keepSample(_obj, _string, value)
    reloadAll()
end

function onDestroy()
  if timerID and type(timerID) == 'object' then
    Timer.destroy(timerID)
  end
end
end)
return __bundle_require("__root")