-- 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("accessories/DisplacementTool", function(require, _LOADED, __bundle_register, __bundle_modules) local playAreaApi = require("core/PlayAreaApi") local UI_offset = 1.15 local buttonParamaters = {} buttonParamaters.function_owner = self buttonParamaters.label = "" buttonParamaters.height = 500 buttonParamaters.width = 500 buttonParamaters.color = { 0, 0, 0, 0 } function onLoad() -- index 0: left buttonParamaters.click_function = "shift_left" buttonParamaters.tooltip = "Move left" buttonParamaters.position = { -UI_offset, 0, 0 } self.createButton(buttonParamaters) -- index 1: right buttonParamaters.click_function = "shift_right" buttonParamaters.tooltip = "Move right" buttonParamaters.position = { UI_offset, 0, 0 } self.createButton(buttonParamaters) -- index 2: up buttonParamaters.click_function = "shift_up" buttonParamaters.tooltip = "Move up" buttonParamaters.position = { 0, 0, -UI_offset } self.createButton(buttonParamaters) -- index 3: down buttonParamaters.click_function = "shift_down" buttonParamaters.tooltip = "Move down" buttonParamaters.position = { 0, 0, UI_offset } self.createButton(buttonParamaters) end function shift_left(color) playAreaApi.shiftContentsLeft(color) end function shift_right(color) playAreaApi.shiftContentsRight(color) end function shift_up(color) playAreaApi.shiftContentsUp(color) end function shift_down(color) playAreaApi.shiftContentsDown(color) end end) __bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local PlayAreaApi = { } local PLAY_AREA_GUID = "721ba2" -- Returns the current value of the investigator counter from the playmat ---@return Integer. Number of investigators currently set on the counter PlayAreaApi.getInvestigatorCount = function() return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") end -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain -- fixed objects will be ignored, as will anything the player has tagged with -- 'displacement_excluded' ---@param playerColor Color of the player requesting the shift. Used solely to send an error --- message in the unlikely case that the scripting zone has been deleted PlayAreaApi.shiftContentsUp = function(playerColor) return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) end PlayAreaApi.shiftContentsDown = function(playerColor) return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) end PlayAreaApi.shiftContentsLeft = function(playerColor) return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) end PlayAreaApi.shiftContentsRight = function(playerColor) return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) end -- Reset the play area's tracking of which cards have had tokens spawned. PlayAreaApi.resetSpawnedCards = function() return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") end -- Event to be called when the current scenario has changed. ---@param scenarioName Name of the new scenario PlayAreaApi.onScenarioChanged = function(scenarioName) getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) end -- Sets this playmat's snap points to limit snapping to locations or not. -- If matchTypes is false, snap points will be reset to snap all cards. ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) end -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged -- cards before they're destroyed by entering the container PlayAreaApi.tryObjectEnterContainer = function(container, object) getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", { container = container, object = object }) end return PlayAreaApi end end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("accessories/DisplacementTool") end) return __bundle_require("__root")