-- 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("playercards/ScriptedTarot")
end)
__bundle_register("playercards/ScriptedTarot", function(require, _LOADED, __bundle_register, __bundle_modules)
CARD_OFFSET = Vector({0, 0.1, -2})
ORIENTATIONS = { {0, 270, 0}, { 0, 90, 0} }
READING = {
    "Temperance",
    "Justice",
    "Hermit",
    "Hanged Man",
    "Hierophant",
    "Lovers",
    "Chariot",
    "Wheel of Fortune"
}

function onLoad()
    self.addContextMenuItem("Chaos", chaos, false)
    self.addContextMenuItem("Balance", balance, false)
    self.addContextMenuItem("Choice", choice, false)
    self.addContextMenuItem("Destiny (Campaign)", destiny, false)
    self.addContextMenuItem("Accept Your Fate", fate, false)

    math.randomseed(os.time())
end

function chaos(color)
    self.shuffle()
    self.takeObject({
        position = self.getPosition() + CARD_OFFSET,
        rotation = ORIENTATIONS[math.random(2)],
        smooth = true
    })
end

function balance(color)
    self.shuffle()
    self.takeObject({
        position = self.getPosition() + CARD_OFFSET,
        rotation = ORIENTATIONS[1],
        smooth = true
    })
    self.takeObject({
        position = self.getPosition() + 2*CARD_OFFSET,
        rotation = ORIENTATIONS[2],
        smooth = true
    })
end

function choice(color)
    self.shuffle()
    for i=1,3 do
        self.takeObject({
            position = self.getPosition() + i*CARD_OFFSET,
            rotation = ORIENTATIONS[1],
            smooth = true
        })
    end
    broadcastToColor("Choose and reverse two of the cards.", color)
end

function destiny(color)
    self.shuffle()
    for i=1,8 do
        self.takeObject({
            position = self.getPosition() + i*CARD_OFFSET,
            rotation = ORIENTATIONS[1],
            smooth = true
        })
    end
    broadcastToColor("Each card corresponds to one scenario, leftmost is first. Choose and reverse half of the cards (rounded up).", color)
end

function fate(color)
    local guids = {}
    local cards = self.getObjects()
    for i,card in ipairs(cards) do
        for j,reading in ipairs(READING) do
            if string.match(card.name, reading) ~= nil then
                guids[j] = card.guid
            end
        end
    end
    for k,guid in ipairs(guids) do
        self.takeObject({
            guid = guid,
            position = self.getPosition() + k*CARD_OFFSET,
            rotation = ORIENTATIONS[1],
            smooth = true
        })
    end
    broadcastToColor("Each card corresponds to one scenario, leftmost is first. Choose and reverse half of the cards (rounded up).", color)
end
end)
return __bundle_require("__root")