diff --git a/config.json b/config.json
index 21eee1d5..810bf746 100644
--- a/config.json
+++ b/config.json
@@ -3,7 +3,6 @@
"ComponentTags_path": "ComponentTags.json",
"CustomUIAssets_path": "CustomUIAssets.json",
"DecalPallet_path": "DecalPallet.json",
- "Decals": [],
"GameComplexity": "",
"GameMode": "Arkham Horror LCG - Super Complete Edition",
"GameType": "",
@@ -198,6 +197,7 @@
"TokenArranger.022907",
"ChaosBagManager.023240",
"ArkhamSCE330-1092023-Page1.964222",
+ "PlaceholderBoxDummy.a93466",
"SoulsofDarkness.a94e6b"
],
"PlayArea": 1,
diff --git a/modsettings/ComponentTags.json b/modsettings/ComponentTags.json
index 3e61c8d2..df092f6f 100644
--- a/modsettings/ComponentTags.json
+++ b/modsettings/ComponentTags.json
@@ -56,10 +56,6 @@
"displayed": "chaosBag",
"normalized": "chaosbag"
},
- {
- "displayed": "arkham_setup_memory_object",
- "normalized": "arkham_setup_memory_object"
- },
{
"displayed": "ActionToken",
"normalized": "actiontoken"
diff --git a/objects/ArkhamDeckCutter.445115.json b/objects/ArkhamDeckCutter.445115.json
index 33d0eb4f..a34b4112 100644
--- a/objects/ArkhamDeckCutter.445115.json
+++ b/objects/ArkhamDeckCutter.445115.json
@@ -28,9 +28,6 @@
"Nickname": "Arkham Deck Cutter",
"Snap": true,
"Sticky": true,
- "Tags": [
- "arkham_setup_memory_object"
- ],
"Tooltip": true,
"Transform": {
"posX": 78,
diff --git a/objects/Fan-MadeAccessories.aa8b38/Auto-failCounter.a9a321.json b/objects/Fan-MadeAccessories.aa8b38/Auto-failCounter.a9a321.json
index c7b63814..2c2bae63 100644
--- a/objects/Fan-MadeAccessories.aa8b38/Auto-failCounter.a9a321.json
+++ b/objects/Fan-MadeAccessories.aa8b38/Auto-failCounter.a9a321.json
@@ -54,4 +54,4 @@
},
"Value": 0,
"XmlUI": ""
-}
\ No newline at end of file
+}
diff --git a/objects/Fan-MadeAccessories.aa8b38/ElderSignCounter.e62cb5.json b/objects/Fan-MadeAccessories.aa8b38/ElderSignCounter.e62cb5.json
index bfd05186..c2460aa5 100644
--- a/objects/Fan-MadeAccessories.aa8b38/ElderSignCounter.e62cb5.json
+++ b/objects/Fan-MadeAccessories.aa8b38/ElderSignCounter.e62cb5.json
@@ -54,4 +54,4 @@
},
"Value": 0,
"XmlUI": ""
-}
\ No newline at end of file
+}
diff --git a/objects/Fan-MadeAccessories.aa8b38/Subject5U-21Helper.1335e8.json b/objects/Fan-MadeAccessories.aa8b38/Subject5U-21Helper.1335e8.json
index a273d326..b3b58a32 100644
--- a/objects/Fan-MadeAccessories.aa8b38/Subject5U-21Helper.1335e8.json
+++ b/objects/Fan-MadeAccessories.aa8b38/Subject5U-21Helper.1335e8.json
@@ -73,4 +73,4 @@
},
"Value": 0,
"XmlUI": ""
-}
\ No newline at end of file
+}
diff --git a/objects/GUIDReferenceHandler.123456.json b/objects/GUIDReferenceHandler.123456.json
index 096e5e49..bd13b2f4 100644
--- a/objects/GUIDReferenceHandler.123456.json
+++ b/objects/GUIDReferenceHandler.123456.json
@@ -42,4 +42,4 @@
},
"Value": 0,
"XmlUI": ""
-}
\ No newline at end of file
+}
diff --git a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801.json b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801.json
index db2728ef..920cb3c3 100644
--- a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801.json
+++ b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801.json
@@ -14,11 +14,12 @@
"r": 1
},
"ContainedObjects_order": [
- "BadBlood.451eaa",
- "RedTideRising.5302f2",
"AllorNothing.72ab92",
+ "BadBlood.451eaa",
+ "BytheBook.cc7eb3",
+ "LaidtoRest.e2dd57",
"ReadorDie.9e73fa",
- "BytheBook.cc7eb3"
+ "RedTideRising.5302f2"
],
"ContainedObjects_path": "ChallengeScenarios.9f6801",
"CustomMesh": {
@@ -64,7 +65,7 @@
"Tooltip": true,
"Transform": {
"posX": -9,
- "posY": 1.481,
+ "posY": 1.482,
"posZ": -76,
"rotX": 0,
"rotY": 270,
diff --git a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801.luascriptstate b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801.luascriptstate
index 609f01d1..eacd2ea5 100644
--- a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801.luascriptstate
+++ b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801.luascriptstate
@@ -1 +1 @@
-{"ml":{"451eaa":{"lock":false,"pos":{"x":12.2499580383301,"y":1.46560525894165,"z":3.98636198043823},"rot":{"x":359.920135498047,"y":269.999908447266,"z":0.016873624175787}},"5302f2":{"lock":false,"pos":{"x":12.2504663467407,"y":1.45853757858276,"z":-20.013650894165},"rot":{"x":359.920135498047,"y":270.00146484375,"z":0.0168716721236706}},"72ab92":{"lock":false,"pos":{"x":12.2520532608032,"y":1.4679582118988,"z":11.9863719940186},"rot":{"x":359.920135498047,"y":270,"z":0.0168737415224314}},"9e73fa":{"lock":false,"pos":{"x":12.2500581741333,"y":1.46089386940002,"z":-12.0136384963989},"rot":{"x":359.920135498047,"y":269.999847412109,"z":0.0168744903057814}},"cc7eb3":{"lock":false,"pos":{"x":12.2495565414429,"y":1.46325027942657,"z":-4.01364088058472},"rot":{"x":359.920135498047,"y":269.999908447266,"z":0.0168744102120399}}}}
+{"ml":{"451eaa":{"lock":false,"pos":{"x":12.252,"y":1.4815,"z":11.986},"rot":{"x":0,"y":269.9999,"z":0}},"5302f2":{"lock":false,"pos":{"x":12.2505,"y":1.4815,"z":-20.0137},"rot":{"x":0,"y":270.0014,"z":0}},"72ab92":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":19.986},"rot":{"x":0,"y":269.9999,"z":0}},"9e73fa":{"lock":false,"pos":{"x":12.2501,"y":1.4815,"z":-12.0137},"rot":{"x":0,"y":269.9998,"z":0}},"cc7eb3":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":3.986},"rot":{"x":0,"y":269.9999,"z":0}},"e2dd57":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":-4.014},"rot":{"x":0,"y":270,"z":0}}}}
diff --git a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/AllorNothing.72ab92.json b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/AllorNothing.72ab92.json
index 0ed9d952..b150356e 100644
--- a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/AllorNothing.72ab92.json
+++ b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/AllorNothing.72ab92.json
@@ -71,9 +71,9 @@
"Sticky": true,
"Tooltip": true,
"Transform": {
- "posX": 12.252,
- "posY": 1.468,
- "posZ": 11.986,
+ "posX": 12.25,
+ "posY": 1.481,
+ "posZ": 19.986,
"rotX": 0,
"rotY": 270,
"rotZ": 0,
diff --git a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/BadBlood.451eaa.json b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/BadBlood.451eaa.json
index 7d1189e1..a8fe9cf7 100644
--- a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/BadBlood.451eaa.json
+++ b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/BadBlood.451eaa.json
@@ -71,9 +71,9 @@
"Sticky": true,
"Tooltip": true,
"Transform": {
- "posX": 12.25,
- "posY": 1.466,
- "posZ": 3.986,
+ "posX": 12.252,
+ "posY": 1.481,
+ "posZ": 11.986,
"rotX": 0,
"rotY": 270,
"rotZ": 0,
diff --git a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/BytheBook.cc7eb3.json b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/BytheBook.cc7eb3.json
index 00b94b1b..ba1c69ad 100644
--- a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/BytheBook.cc7eb3.json
+++ b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/BytheBook.cc7eb3.json
@@ -72,8 +72,8 @@
"Tooltip": true,
"Transform": {
"posX": 12.25,
- "posY": 1.463,
- "posZ": -4.014,
+ "posY": 1.481,
+ "posZ": 3.986,
"rotX": 0,
"rotY": 270,
"rotZ": 0,
diff --git a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/LaidtoRest.e2dd57.json b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/LaidtoRest.e2dd57.json
new file mode 100644
index 00000000..6750e563
--- /dev/null
+++ b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/LaidtoRest.e2dd57.json
@@ -0,0 +1,86 @@
+{
+ "AltLookAngle": {
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "AttachedDecals": [
+ {
+ "CustomDecal": {
+ "ImageURL": "http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/",
+ "Name": "dunwich_back",
+ "Size": 7.4
+ },
+ "Transform": {
+ "posX": 0,
+ "posY": 0,
+ "posZ": 0,
+ "rotX": 270,
+ "rotY": 0,
+ "rotZ": 0,
+ "scaleX": 2,
+ "scaleY": 2,
+ "scaleZ": 2
+ }
+ }
+ ],
+ "Autoraise": true,
+ "ColorDiffuse": {
+ "a": 0.27451,
+ "b": 1,
+ "g": 1,
+ "r": 1
+ },
+ "CustomMesh": {
+ "CastShadows": true,
+ "ColliderURL": "",
+ "Convex": true,
+ "CustomShader": {
+ "FresnelStrength": 0,
+ "SpecularColor": {
+ "b": 1,
+ "g": 1,
+ "r": 1
+ },
+ "SpecularIntensity": 0,
+ "SpecularSharpness": 2
+ },
+ "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/2115061845788468343/B7611EC7DCD2008B87D6518EBEFF0AD36EFE5B54/",
+ "MaterialIndex": 3,
+ "MeshURL": "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj",
+ "NormalURL": "",
+ "TypeIndex": 0
+ },
+ "Description": "Challenge Scenario",
+ "DragSelectable": true,
+ "GMNotes": "scenarios/challenge_laid_to_rest.json",
+ "GUID": "e2dd57",
+ "Grid": true,
+ "GridProjection": false,
+ "Hands": true,
+ "HideWhenFaceDown": false,
+ "IgnoreFoW": false,
+ "LayoutGroupSortIndex": 0,
+ "Locked": false,
+ "LuaScript": "require(\"core/DownloadBox\")",
+ "LuaScriptState": "",
+ "MeasureMovement": false,
+ "Name": "Custom_Model",
+ "Nickname": "Laid to Rest",
+ "Snap": true,
+ "Sticky": true,
+ "Tooltip": true,
+ "Transform": {
+ "posX": 12.25,
+ "posY": 1.481,
+ "posZ": -4.014,
+ "rotX": 0,
+ "rotY": 270,
+ "rotZ": 0,
+ "scaleX": 2.21,
+ "scaleY": 0.46,
+ "scaleZ": 2.42
+ },
+ "Value": 0,
+ "XmlUI": ""
+}
diff --git a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/ReadorDie.9e73fa.json b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/ReadorDie.9e73fa.json
index becd0521..2acce7c1 100644
--- a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/ReadorDie.9e73fa.json
+++ b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/ReadorDie.9e73fa.json
@@ -72,7 +72,7 @@
"Tooltip": true,
"Transform": {
"posX": 12.25,
- "posY": 1.461,
+ "posY": 1.481,
"posZ": -12.014,
"rotX": 0,
"rotY": 270,
diff --git a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/RedTideRising.5302f2.json b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/RedTideRising.5302f2.json
index b794a5df..85fdb993 100644
--- a/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/RedTideRising.5302f2.json
+++ b/objects/OfficialStandaloneChallengeScenarios.0ef5c8/ChallengeScenarios.9f6801/RedTideRising.5302f2.json
@@ -72,7 +72,7 @@
"Tooltip": true,
"Transform": {
"posX": 12.25,
- "posY": 1.459,
+ "posY": 1.481,
"posZ": -20.014,
"rotX": 0,
"rotY": 270,
diff --git a/objects/PlaceholderBoxDummy.a93466.json b/objects/PlaceholderBoxDummy.a93466.json
new file mode 100644
index 00000000..f20cff4f
--- /dev/null
+++ b/objects/PlaceholderBoxDummy.a93466.json
@@ -0,0 +1,45 @@
+{
+ "AltLookAngle": {
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "Autoraise": true,
+ "ColorDiffuse": {
+ "b": 0.82353,
+ "g": 0.20157,
+ "r": 0
+ },
+ "Description": "This dummy is there to hold the up-to-date script file for placeholder boxes to be available for placeholder box spawning.",
+ "DragSelectable": true,
+ "GMNotes": "",
+ "GUID": "a93466",
+ "Grid": true,
+ "GridProjection": false,
+ "Hands": false,
+ "HideWhenFaceDown": false,
+ "IgnoreFoW": false,
+ "LayoutGroupSortIndex": 0,
+ "Locked": true,
+ "LuaScript": "require(\"core/DownloadBox\")",
+ "LuaScriptState": "",
+ "MeasureMovement": false,
+ "Name": "BlockRectangle",
+ "Nickname": "Placeholder Box Dummy",
+ "Snap": true,
+ "Sticky": true,
+ "Tooltip": true,
+ "Transform": {
+ "posX": 78,
+ "posY": 1.645,
+ "posZ": -33,
+ "rotX": 0,
+ "rotY": 0,
+ "rotZ": 0,
+ "scaleX": 1,
+ "scaleY": 1,
+ "scaleZ": 1
+ },
+ "Value": 0,
+ "XmlUI": ""
+}
\ No newline at end of file
diff --git a/objects/Playermat4Red.0840d5.json b/objects/Playermat4Red.0840d5.json
index 68a96ac7..96edae24 100644
--- a/objects/Playermat4Red.0840d5.json
+++ b/objects/Playermat4Red.0840d5.json
@@ -351,10 +351,6 @@
"Nickname": "Playermat 4: Red",
"Snap": true,
"Sticky": true,
- "Tags": [
- "Red",
- "Playermat"
- ],
"Tooltip": false,
"Transform": {
"posX": -30.35,
diff --git a/objects/RulesReference.d99993.json b/objects/RulesReference.d99993.json
index 4de14917..efc620d1 100644
--- a/objects/RulesReference.d99993.json
+++ b/objects/RulesReference.d99993.json
@@ -14,7 +14,7 @@
"PDFPage": 0,
"PDFPageOffset": 0,
"PDFPassword": "",
- "PDFUrl": "https://images-cdn.fantasyflightgames.com/filer_public/c4/b0/c4b0d66c-d79e-411b-bdb5-b5d8c457d4bc/ahc01_rules_reference_web.pdf"
+ "PDFUrl": "http://cloud-3.steamusercontent.com/ugc/2115061845793806189/6FC67F9AF9224452E2D8F25E63B88D702B21B0DC/"
},
"Description": "",
"DragSelectable": true,
diff --git a/src/accessories/TokenArranger.ttslua b/src/accessories/TokenArranger.ttslua
index fb836480..2be2c7cd 100644
--- a/src/accessories/TokenArranger.ttslua
+++ b/src/accessories/TokenArranger.ttslua
@@ -312,6 +312,10 @@ function layout(_, _, isRightClick)
local value = tonumber(objData.Nickname)
local precedence = tokenPrecedence[objData.Nickname]
+ -- remove GUID to avoid issues for high latency clients
+ objData["GUID"] = nil
+
+ -- store data with value / precendence
data[i] = {
token = objData,
value = value or precedence[1]
diff --git a/src/arkhamdb/ArkhamDb.ttslua b/src/arkhamdb/ArkhamDb.ttslua
index d41da134..eb3dcf41 100644
--- a/src/arkhamdb/ArkhamDb.ttslua
+++ b/src/arkhamdb/ArkhamDb.ttslua
@@ -295,7 +295,12 @@ do
local card = allCardsBagApi.getCardById(cardId)
if (card ~= nil and card.metadata.bonded ~= nil) then
for _, bond in ipairs(card.metadata.bonded) do
- bondedCards[bond.id] = bond.count
+ -- add a bonded card for each copy of the parent card (except for Pendant of the Queen)
+ if bond.id == "06022" then
+ bondedCards[bond.id] = bond.count
+ else
+ bondedCards[bond.id] = bond.count * cardCount
+ end
-- We need to know which cards are bonded to determine their position, remember them
bondedList[bond.id] = true
-- Also adding taboo versions of bonded cards to the list
diff --git a/src/core/GUIDReferenceHandler.ttslua b/src/core/GUIDReferenceHandler.ttslua
index b770c057..53b3c7d9 100644
--- a/src/core/GUIDReferenceHandler.ttslua
+++ b/src/core/GUIDReferenceHandler.ttslua
@@ -56,6 +56,7 @@ local GuidReferences = {
MythosArea = "9f334f",
NavigationOverlayHandler = "797ede",
OptionPanelSource = "830bd0",
+ PlaceholderBoxDummy = "a93466",
PlayArea = "721ba2",
PlayAreaZone = "a2f932",
PlayerCardPanel = "2d30ee",
diff --git a/src/core/Global.ttslua b/src/core/Global.ttslua
index 9ebbbdf7..92e088bf 100644
--- a/src/core/Global.ttslua
+++ b/src/core/Global.ttslua
@@ -717,6 +717,128 @@ function downloadCoroutine()
return 1
end
+-- spawns a bag that contains every object from the library
+function onClick_downloadAll()
+ broadcastToAll("Download initiated - this will take a few minutes!")
+
+ -- hide download window
+ if xmlVisibility.downloadWindow then
+ xmlVisibility.downloadWindow = false
+ UI.hide('downloadWindow')
+ end
+
+ startLuaCoroutine(Global, "coroutineDownloadAll")
+end
+
+function coroutineDownloadAll()
+ local JSON = [[
+ {
+ "Name": "Bag",
+ "Transform": {
+ "posX": -39.5,
+ "posY": 2,
+ "posZ": -87,
+ "rotX": 0,
+ "rotY": 270,
+ "rotZ": 0,
+ "scaleX": 1.0,
+ "scaleY": 1.0,
+ "scaleZ": 1.0
+ },
+ "Nickname": "All Downloadable Content",
+ "Bag": {
+ "Order": 0
+ },
+ "ContainedObjects": [
+ ]]
+
+ local contained = ""
+ local downloadedItems = 0
+ local skippedItems = 0
+
+ -- loop through the library to add content
+ for contentType, objectList in pairs(library) do
+ broadcastToAll("Downloading " .. contentType .. "...")
+ for _, params in ipairs(objectList) do
+ local request = WebRequest.get(SOURCE_REPO .. '/' .. params.url)
+ local start = os.time()
+ while true do
+ if request.is_done then
+ contained = contained .. request.text .. ","
+ downloadedItems = downloadedItems + 1
+ break
+ -- time-out if item can't be loaded in 5s
+ elseif request.is_error or (os.time() - start) > 5 then
+ skippedItems = skippedItems + 1
+ break
+ end
+ coroutine.yield(0)
+ end
+ end
+ end
+
+ JSON = JSON .. contained .. "]}"
+ spawnObjectJSON({json = JSON})
+
+ broadcastToAll(downloadedItems .. " objects downloaded.", "Green")
+ broadcastToAll(skippedItems .. " objects had a time-out / error.", "Orange")
+ return 1
+end
+
+-- spawns a placeholder box for the selected object
+function onClick_spawnPlaceholder()
+ -- get object references
+ local item = library[contentToShow][currentListItem]
+ local dummy = guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlaceholderBoxDummy")
+
+ -- error handling
+ if not item.boxsize or item.boxsize == "" or not item.boxart or item.boxart == "" then
+ print("Error loading object.")
+ return
+ end
+
+ -- get data for placeholder
+ local spawnPos = {-39.5, 2, -87}
+
+ local meshTable = {
+ big = "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj",
+ small = "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj",
+ wide = "http://pastebin.com/raw.php?i=uWAmuNZ2"
+ }
+
+ local scaleTable = {
+ big = {1.00, 0.14, 1.00},
+ small = {2.21, 0.46, 2.42},
+ wide = {2.00, 0.11, 1.69}
+ }
+
+ local placeholder = spawnObject({
+ type = "Custom_Model",
+ position = spawnPos,
+ rotation = {0, 270, 0},
+ scale = scaleTable[item.boxsize],
+ })
+
+ placeholder.setCustomObject({
+ mesh = meshTable[item.boxsize],
+ diffuse = item.boxart,
+ material = 3
+ })
+
+ placeholder.setColorTint({1, 1, 1, 71/255})
+ placeholder.setName(item.name)
+ placeholder.setDescription("by " .. (item.author or "Unknown"))
+ placeholder.setGMNotes(item.url)
+ placeholder.setLuaScript(dummy.getLuaScript())
+ Player.getPlayers()[1].pingTable(spawnPos)
+
+ -- hide download window
+ if xmlVisibility.downloadWindow then
+ xmlVisibility.downloadWindow = false
+ UI.hide('downloadWindow')
+ end
+end
+
-- toggles the visibility of the respective UI
---@param player LuaPlayer Player that triggered this
---@param title String Name of the UI to toggle
@@ -754,25 +876,25 @@ function updatePreviewWindow()
local maskData = {}
if item.boxsize == "big" then
maskData = {
- image = "box-cover-mask-big",
- width = "870",
- height = "435",
- offsetXY = "154 60"
- }
+ image = "box-cover-mask-big",
+ width = "870",
+ height = "435",
+ offsetXY = "154 60"
+ }
elseif item.boxsize == "small" then
maskData = {
- image = "box-cover-mask-small",
- width = "792",
- height = "594",
- offsetXY = "135 13"
- }
+ image = "box-cover-mask-small",
+ width = "792",
+ height = "594",
+ offsetXY = "135 13"
+ }
elseif item.boxsize == "wide" then
maskData = {
- image = "box-cover-mask-wide",
- width = "756",
- height = "630",
- offsetXY = "-190 -70"
- }
+ image = "box-cover-mask-wide",
+ width = "756",
+ height = "630",
+ offsetXY = "-190 -70"
+ }
end
-- loading empty image as placeholder until real image is loaded
diff --git a/src/core/token/TokenManager.ttslua b/src/core/token/TokenManager.ttslua
index adcfae82..a5cae52a 100644
--- a/src/core/token/TokenManager.ttslua
+++ b/src/core/token/TokenManager.ttslua
@@ -221,9 +221,11 @@ do
-- Copy the offsets to make sure we don't change the static values
local baseOffsets = offsets
offsets = { }
+
+ -- get a vector for the shifting (downwards local to the card)
+ local shiftDownVector = Vector(0, 0, shiftDown):rotateOver("y", card.getRotation().y)
for i, baseOffset in ipairs(baseOffsets) do
- offsets[i] = baseOffset
- offsets[i][3] = offsets[i][3] + shiftDown
+ offsets[i] = baseOffset + shiftDownVector
end
end
diff --git a/src/playercards/customizable/FriendsinLowPlacesUpgradeSheet.ttslua b/src/playercards/customizable/FriendsinLowPlacesUpgradeSheet.ttslua
index 7862666f..f0870600 100644
--- a/src/playercards/customizable/FriendsinLowPlacesUpgradeSheet.ttslua
+++ b/src/playercards/customizable/FriendsinLowPlacesUpgradeSheet.ttslua
@@ -25,16 +25,16 @@ customizations = {
checkboxes = {
posZ = -0.44,
count = 2,
+ },
+ textField = {
+ position = { 0.6295, 0.25, -0.44 },
+ width = 290
}
},
[4] = {
checkboxes = {
posZ = -0.05,
count = 2,
- },
- textField = {
- position = { 0.6295, 0.25, -0.44 },
- width = 290
}
},
[5] = {
diff --git a/xml/Global/DownloadWindow.xml b/xml/Global/DownloadWindow.xml
index 8b11460b..49583b87 100644
--- a/xml/Global/DownloadWindow.xml
+++ b/xml/Global/DownloadWindow.xml
@@ -12,6 +12,12 @@
color="white"/>
+
@@ -27,13 +33,32 @@
Downloadable Content
-
+
+
+