Compare commits

...

10 Commits

29 changed files with 65 additions and 3815 deletions

View File

@ -1,11 +1,8 @@
name: build-mod
on:
workflow_dispatch:
release:
types: [created]
pull_request:
permissions: read-all
push:
tags:
- "p*"
jobs:
build-the-mod:
@ -14,5 +11,17 @@ jobs:
contents: write
actions: read
steps:
- uses: argonui/TTSModManager.action@v1.0.0
- uses: actions/checkout@v3
- run: wget https://github.com/argonui/TTSModManager/releases/download/v1.2.1/TTSModManager-Linux
shell: bash
- run: chmod +x TTSModManager-Linux
shell: bash
- run: ./TTSModManager-Linux -moddir="./" -modfile="./SCED ${{ github.ref_name }}.json"
shell: bash
- name: Create Release
uses: akkuman/gitea-release-action@v1
env:
NODE_OPTIONS: '--experimental-fetch' # if nodejs < 18
with:
files: "SCED ${{ github.ref_name }}.json"
name: "Patched ${{ github.ref_name }}"

View File

@ -83,7 +83,6 @@
"Trash.5f896a",
"Trash.147e80",
"Trash.f7b6c8",
"PatchNotes.f47225",
"RulesReference.d99993",
"LatestFAQ.faqfaq",
"Doomtokens.16724b",
@ -157,7 +156,6 @@
"PhaseTrackerCache.645841",
"TokenSource.124381",
"GameData.3dbe47",
"SCEDTour.0e5aa8",
"DeckInstructionGenerator.240522",
"PlayerCards.2d30ee",
"TokenRemover.39b175",

View File

@ -50,7 +50,7 @@
"posY": 1.561,
"posZ": -26.426,
"rotX": 0,
"rotY": 180,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.8,
"scaleY": 0.8,

View File

@ -50,7 +50,7 @@
"posY": 1.561,
"posZ": 25.864,
"rotX": 0,
"rotY": 0,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.8,
"scaleY": 0.8,

View File

@ -20,7 +20,7 @@
"HideWhenFaceDown": false,
"IgnoreFoW": false,
"LayoutGroupSortIndex": 0,
"Locked": true,
"Locked": false,
"LuaScript": "require(\"arkhamdb/Configuration\")",
"LuaScriptState": "",
"MeasureMovement": false,
@ -33,9 +33,9 @@
],
"Tooltip": true,
"Transform": {
"posX": 78,
"posY": 1.395,
"posZ": 4.352,
"posX": -8.44,
"posY": 2,
"posZ": 77,
"rotX": 0,
"rotY": 270,
"rotZ": 180,

View File

@ -60,7 +60,7 @@
"posY": 1.581,
"posZ": -22.555,
"rotX": 0,
"rotY": 180,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.8,
"scaleY": 1,

View File

@ -60,7 +60,7 @@
"posY": 1.581,
"posZ": 21.992,
"rotX": 0,
"rotY": 0,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.8,
"scaleY": 1,

View File

@ -50,7 +50,7 @@
"posY": 1.581,
"posZ": 27.799,
"rotX": 0,
"rotY": 0,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.8,
"scaleY": 1,

View File

@ -50,7 +50,7 @@
"posY": 1.581,
"posZ": -28.362,
"rotX": 0,
"rotY": 180,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.8,
"scaleY": 1,

View File

@ -33,7 +33,7 @@
"Tooltip": true,
"Transform": {
"posX": -37.75,
"posY": 6,
"posY": 5.08,
"posZ": 30,
"rotX": 0,
"rotY": 90,

View File

@ -33,7 +33,7 @@
"Tooltip": true,
"Transform": {
"posX": -65,
"posY": 6,
"posY": 5.08,
"posZ": -16.1,
"rotX": 0,
"rotY": 90,

View File

@ -33,7 +33,7 @@
"Tooltip": true,
"Transform": {
"posX": -65,
"posY": 6,
"posY": 5.08,
"posZ": 16.1,
"rotX": 0,
"rotY": 90,

View File

@ -33,7 +33,7 @@
"Tooltip": true,
"Transform": {
"posX": -37.75,
"posY": 6,
"posY": 5.08,
"posZ": -30,
"rotX": 0,
"rotY": 90,

View File

@ -50,7 +50,7 @@
"posY": 1.581,
"posZ": -24.491,
"rotX": 0,
"rotY": 180,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.8,
"scaleY": 1,

View File

@ -50,7 +50,7 @@
"posY": 1.581,
"posZ": 23.928,
"rotX": 0,
"rotY": 0,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.8,
"scaleY": 1,

View File

@ -25,7 +25,7 @@
"showTitleSplash": true,
"useClassTexture": true,
"useClueClickers": false,
"useResourceCounters": "disabled",
"useResourceCounters": "enabled",
"useSnapTags": true
}
}

View File

@ -1,113 +0,0 @@
{
"AltLookAngle": {
"x": 0,
"y": 0,
"z": 0
},
"AttachedDecals": [
{
"CustomDecal": {
"ImageURL": "https://steamusercontent-a.akamaihd.net/ugc/2501268517218943111/803E57A7B3E9765DF342050EE6C71D69473A7388/",
"Name": "Image #1",
"Size": 1
},
"Transform": {
"posX": -0.93,
"posY": 0.105,
"posZ": 0.66,
"rotX": 90,
"rotY": 180,
"rotZ": 0,
"scaleX": 0.6,
"scaleY": 0.6,
"scaleZ": 1
}
},
{
"CustomDecal": {
"ImageURL": "https://steamusercontent-a.akamaihd.net/ugc/2037357792052848566/5DA900C430E97D3DFF2C9B8A3DB1CB2271791FC7/",
"Name": "Image #2",
"Size": 1
},
"Transform": {
"posX": -1.05,
"posY": 0.105,
"posZ": -0.567,
"rotX": 90,
"rotY": 205,
"rotZ": 0,
"scaleX": 0.3,
"scaleY": 0.3,
"scaleZ": 1
}
},
{
"CustomDecal": {
"ImageURL": "https://steamusercontent-a.akamaihd.net/ugc/2501268517219098388/0936FEE03B410319658B5E05DB5D486CEDDE98F5/",
"Name": "Image #3",
"Size": 1
},
"Transform": {
"posX": 0,
"posY": 0.105,
"posZ": -0.81,
"rotX": 90,
"rotY": 180,
"rotZ": 0,
"scaleX": 2.4,
"scaleY": 0.009,
"scaleZ": 1
}
}
],
"Autoraise": true,
"ColorDiffuse": {
"b": 1,
"g": 1,
"r": 1
},
"CustomImage": {
"CustomTile": {
"Stackable": false,
"Stretch": true,
"Thickness": 0.1,
"Type": 0
},
"ImageScalar": 1,
"ImageSecondaryURL": "http://sfwallpaper.com/images/parchment-paper-wallpaper-10.jpg",
"ImageURL": "http://sfwallpaper.com/images/parchment-paper-wallpaper-10.jpg",
"WidthScale": 0
},
"Description": "",
"DragSelectable": true,
"GMNotes": "",
"GUID": "f47225",
"Grid": true,
"GridProjection": false,
"Hands": false,
"HideWhenFaceDown": false,
"IgnoreFoW": false,
"LayoutGroupSortIndex": 0,
"Locked": false,
"LuaScriptState_path": "PatchNotes.f47225.luascriptstate",
"LuaScript_path": "PatchNotes.f47225.ttslua",
"MeasureMovement": false,
"Name": "Custom_Tile",
"Nickname": "Patch Notes",
"Snap": true,
"Sticky": true,
"Tooltip": true,
"Transform": {
"posX": -27,
"posY": 1.481,
"posZ": -56.165,
"rotX": 0,
"rotY": 270,
"rotZ": 0,
"scaleX": 7.5,
"scaleY": 1,
"scaleZ": 7.5
},
"Value": 0,
"XmlUI": ""
}

View File

@ -1,145 +0,0 @@
{
"checks": [],
"decals": [
{
"locked": false,
"name": "Arkham SCE logo",
"pos": {
"x": 3.1,
"y": 2.2
},
"rotation": 0,
"scale": {
"x": "2",
"y": "2"
},
"tooltip": "None",
"url": "https://steamusercontent-a.akamaihd.net/ugc/2501268517218943111/803E57A7B3E9765DF342050EE6C71D69473A7388/"
},
{
"locked": false,
"name": "Bootlegger Finn",
"pos": {
"x": 3.5,
"y": -1.89
},
"rotation": "25",
"scale": {
"x": "1",
"y": "1"
},
"tooltip": "None",
"url": "https://steamusercontent-a.akamaihd.net/ugc/2037357792052848566/5DA900C430E97D3DFF2C9B8A3DB1CB2271791FC7/"
},
{
"locked": false,
"name": "black bar",
"pos": {
"x": 0,
"y": -2.7
},
"rotation": 0,
"scale": {
"x": "8",
"y": "0.03"
},
"tooltip": "None",
"url": "https://steamusercontent-a.akamaihd.net/ugc/2501268517219098388/0936FEE03B410319658B5E05DB5D486CEDDE98F5/"
}
],
"fields": [
{
"align": 3,
"array": {
"x": "1",
"y": "1"
},
"counter": "False",
"distance": {
"x": "1",
"y": "1"
},
"fieldColor": {
"a": 0,
"b": 1,
"g": 1,
"r": 1
},
"font": "200",
"locked": false,
"name": "Patch Notes",
"pos": {
"x": "0",
"y": -2.9
},
"role": "Normal Field",
"size": {
"x": "3750",
"y": "250"
},
"textColor": {
"a": 1,
"b": 0,
"g": 0,
"r": 0
},
"tooltip": "None",
"value": [
"Arkham Horror LCG SCE 4.0.0 - 11/01/2024"
]
},
{
"align": 2,
"array": {
"x": "1",
"y": 1
},
"distance": {
"x": "1",
"y": "1"
},
"fieldColor": {
"a": 0,
"b": 1,
"g": 1,
"r": 1
},
"font": "70",
"locked": false,
"name": "Details",
"pos": {
"x": "0",
"y": 0.4
},
"role": "Nothing",
"size": {
"x": "3750",
"y": "2750"
},
"textColor": {
"a": 1,
"b": 0,
"g": 0,
"r": 0
},
"tooltip": "None",
"value": [
"New stuff\n- added Parallel Mateo\n- added a global UI for the Bless / Curse manager\n- added a \"shuffle discard into deck\" button to playermats (for example for the mulligan)\n- added XML helper for \"Stella Clark\", \"The Red Clock\" and \"Elle Rubash\"\n- added \"clickability\" to damage / horror tokens and updated the font / image\n- added investigator specific things spawning when placing (e.g. Bounty tokens for Tony)\n- added a right-click function to the left-most \"Discard\" button on playermats\n- added ability for the \"doom in play\" counter to subtract from the total (e.g. for The Longest Night)\n\nImprovements\n- updated chaos token stat tracker to display the last 5 drawn tokens\n- updated deck importer's handling for attachments (use selection from arkham.build if possible, spawn attachment helpers)\n- smoother token spawning by adding a separate cache for them\n- changed helper visibility to only show when placed on a playermat\n- added teal highlighting for temporary action tokens (reminder: spawnable via numpad 2)\n- updated Deck Instruction Generator to add a card gallery to the ArkhamDB deck description\n- updated download menu with a search and author filter\n- updated Victory Display with a button to spawn \"Additional VP\" cards (e.g. to track interludes etc.)\n- updated memory bag script (used by bags with \"place / recall\" feature)\n- updated doom counter (with color and better message)\n- updated Search-A-Card to support searching by ID\n- updated custom card handling by Playercard Panel\n- combined multiple feedback messages from Bless / Curse manager\n- moved side scenario spawn position higher to not overlap with regular scenario boxes\n- Tour: adapted to support unusual display resolutions and added a \"back\" button\n- Attachment Helper: updated to use metadata and added texture for George Barnaby\n\nBugfixes\n- fixed hotkey for multi-handed Upkeep\n- fixed wrong visibility of playermat option panels after loading\n- fixed issues with token redrawing\n- fixed issues with scenario reference card detection\n- updated Navigation Overlay to not break with removed playermats\n- Clean Up Helper: 'nil' handling for scenario, mini card detection and action token resetting\n\nThe campaigns were also updated with improved helpers and upgraded campaign logs!\nPreviewed / spoiled cards for the upcoming cycle \"The Drowned City\" can be accessed\nvia the download menu (bottom right corner of your screen).\n"
]
}
],
"flip": "False",
"height": "0.1",
"locks": {
"checks": false,
"decals": false,
"fields": false
},
"nudgeDistance": 0.1,
"scale": {
"x": "0.3",
"y": "0.3"
},
"sheetLocked": true,
"wasCommitted": false
}

File diff suppressed because it is too large Load Diff

View File

@ -50,7 +50,7 @@
"posY": 1.581,
"posZ": 20.057,
"rotX": 0,
"rotY": 0,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.8,
"scaleY": 1,

View File

@ -50,7 +50,7 @@
"posY": 1.581,
"posZ": -20.619,
"rotX": 0,
"rotY": 180,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.8,
"scaleY": 1,

View File

@ -1,57 +0,0 @@
{
"AltLookAngle": {
"x": 0,
"y": 0,
"z": 0
},
"Autoraise": true,
"ColorDiffuse": {
"b": 1,
"g": 1,
"r": 1
},
"CustomImage": {
"CustomToken": {
"MergeDistancePixels": 10,
"Stackable": false,
"StandUp": false,
"Thickness": 0.1
},
"ImageScalar": 1,
"ImageSecondaryURL": "",
"ImageURL": "https://i.imgur.com/Q1J2Dgl.png",
"WidthScale": 0
},
"Description": "",
"DragSelectable": true,
"GMNotes": "",
"GUID": "0e5aa8",
"Grid": true,
"GridProjection": false,
"Hands": false,
"HideWhenFaceDown": false,
"IgnoreFoW": false,
"LayoutGroupSortIndex": 0,
"Locked": false,
"LuaScript": "require(\"core/tour/TourStarter\")",
"LuaScriptState": "",
"MeasureMovement": false,
"Name": "Custom_Token",
"Nickname": "SCED Tour",
"Snap": true,
"Sticky": true,
"Tooltip": false,
"Transform": {
"posX": -24.5,
"posY": 1.57,
"posZ": 0,
"rotX": 0,
"rotY": 270,
"rotZ": 0,
"scaleX": 4,
"scaleY": 1,
"scaleZ": 4
},
"Value": 0,
"XmlUI": ""
}

View File

@ -49,7 +49,7 @@
"posY": 1.481,
"posZ": 29.735,
"rotX": 0,
"rotY": 0,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.8,
"scaleY": 1,

View File

@ -49,7 +49,7 @@
"posY": 1.481,
"posZ": -30.309,
"rotX": 0,
"rotY": 180,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.8,
"scaleY": 1,

View File

@ -7,3 +7,20 @@ configuration = {
cards = "card",
taboo = "taboos"
}
function onRotate(spin, flip, player_color, old_spin, old_flip)
local builder = getObjectFromGUID("a28140")
if flip == 0 then
configuration.api_uri = "https://arkhamdb.adamgoldsmith.name/api/public"
builder.UI.setXml('<Text fontSize="25" color="orange" position="17 -74 -11" rotation="0 0 180">Adam</Text>')
else
configuration.api_uri = "https://arkhamdb.com/api/public"
builder.UI.setXml('')
end
builder.call("arkhamdb_reinit", {})
print("Set URL to " .. configuration.api_uri)
end

View File

@ -40,6 +40,10 @@ function onLoad(script_state)
arkhamDb.initialize()
end
function arkhamdb_reinit()
arkhamDb.initialize()
end
function onSave() return JSON.encode(getUiState()) end
-- Returns a table with the full state of the UI, including options and deck IDs.

View File

@ -2536,11 +2536,11 @@ TokenManager.buildClueOffsets = function(card, count)
local localIndex = (i - 1) % 16
-- get row and column for this clue
local row = math.floor(localIndex / 4) + 1
local column = localIndex % 4
local column = math.floor(localIndex / 4)
local row = (localIndex) % 4
-- calculate local position
local localPos = Vector((-0.825 + 0.55 * column) * modifier, 0, -1.5 + 0.55 * row)
local localPos = Vector((1.4 + 0.55 * column) * modifier, 0, -1 + 0.55 * row)
-- get the global clue position (higher y-position for each set)
local cluePos = card.positionToWorld(localPos) + Vector(0, 0.03 + 0.103 * (set - 1), 0)

View File

@ -238,17 +238,7 @@ end
-- draw the provided card to the requesting playermat
function actualEncounterCardDraw(card, params)
local metadata = JSON.decode(card.getGMNotes()) or {}
local DATA_HELPER = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DataHelper")
-- draw hidden cards facedown
local faceUpRotation = 0
if metadata.hidden or DATA_HELPER.call('checkHiddenCard', card.getName()) then
faceUpRotation = 180
end
local rot = playermatApi.returnRotation(params.matColor):setAt("z", faceUpRotation)
deckLib.placeOrMergeIntoDeck(card, params.position, rot)
card.deal(1, params.matColor)
end
-- gets the discard pile and shuffles it into the encounter deck

View File

@ -304,7 +304,7 @@ end
---@param id number Index of the discard button (from left to right, must be unique)
function makeDiscardButton(id)
local xValue = DISCARD_BUTTON_X_START + (id - 1) * DISCARD_BUTTON_X_OFFSET
local position = { xValue, 0.1, -0.94 }
local position = { xValue, 0.1, -0.94 + 0.6 }
local searchPosition = { -position[1], position[2], position[3] + 0.32 }
local handlerName = 'handler' .. id
self.setVar(handlerName, function()
@ -327,7 +327,7 @@ end
-- build a hybrid button to discard from searchPosition or move a card/deck to empty threat area on right click
function makeDrawAreaButton()
local position = { -1.365, 0.1, -0.94 }
local position = { -1.365, 0.1, -0.94 + 0.6 }
self.createButton({
label = "Discard / ➜",
click_function = "discardOrMove",