local TOKEN_IDS = { -- first row "p1", "0", "m1", "m2", "m3", "m4", -- second row "m5", "m6", "m7", "m8", "frost", -- third row "blue", "skull", "cultist", "tablet", "elder", "red" } local BUTTON_TOOLTIP = { -- first row "+1", "0", "-1", "-2", "-3", "-4", -- second row "-5", "-6", "-7", "-8", "Frost", -- third row "Elder Sign", "Skull", "Cultist", "Tablet", "Elder Thing", "Auto-fail" } local BUTTON_POSITION = { -- first row -1.90, -1.14, -0.38, 0.38, 1.14, 1.90, -- second row -1.90, -1.14, -0.38, 0.38, 1.90, -- third row -1.90, -1.14, -0.38, 0.38, 1.14, 1.90 } -- common button parameters local buttonParameters = {} buttonParameters.function_owner = self buttonParameters.color = { 0, 0, 0, 0 } buttonParameters.width = 300 buttonParameters.height = 300 local name local tokens = {} function onLoad() -- create buttons for tokens for i = 1, #BUTTON_POSITION do local funcName = "buttonClick" .. i self.setVar(funcName, function(_, _, isRightClick) buttonClick(i, isRightClick) end) buttonParameters.click_function = funcName buttonParameters.tooltip = BUTTON_TOOLTIP[i] buttonParameters.position = { x = BUTTON_POSITION[i], y = 0, z = 0 } if i < 7 then buttonParameters.position.z = -0.778 elseif i > 11 then buttonParameters.position.z = 0.755 end self.createButton(buttonParameters) end end -- click function for buttons function buttonClick(index, isRightClick) local tokenId = TOKEN_IDS[index] if isRightClick then Global.call("removeChaosToken", tokenId) else local tokens = {} local name = BUTTON_TOOLTIP[index] local chaosbag = Global.call("findChaosBag") for _, v in ipairs(chaosbag.getObjects()) do if v.name == name then table.insert(tokens, v.guid) end end -- spawn token (only 8 frost tokens allowed) if tokenId == "frost" and #tokens == 8 then printToAll("The maximum of 8 Frost tokens is already in the bag.", "Yellow") return end Global.call("spawnChaosToken", tokenId) printToAll("Adding " .. name .. " token (in bag: " .. #tokens + 1 .. ")", "White") end end