Merge pull request #809 from argonui/game-keys

Remove closest uses first
This commit is contained in:
Chr1Z 2024-08-14 19:39:43 +02:00 committed by GitHub
commit 5febee03c5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 12 additions and 10 deletions

View File

@ -47,8 +47,6 @@ do
--- investigatorCode String. ID of the investigator in this deck
--- customizations table The decoded table of customization upgrades in this deck
--- playerColor String. Color this deck is being loaded for
---@return boolean
---@return string
ArkhamDb.getDecklist = function(
playerColor,
deckId,

View File

@ -275,14 +275,18 @@ function removeOneUse(playerColor, hoveredObject)
return
end
-- index the found tokens by memo (only the first of each type)
-- index the found tokens by memo (store the token closest to the card for each memo)
local cardPos = hoveredObject.getPosition()
local indexByMemo = {}
local distanceByMemo = {}
for _, obj in ipairs(searchResult) do
if not obj.locked then
if obj.memo and indexByMemo[obj.memo] == nil then
indexByMemo[obj.memo] = obj
elseif indexByMemo["NO_MEMO"] == nil then
indexByMemo["NO_MEMO"] = obj
local objPos = obj.getPosition()
local distance = Vector.between(cardPos, objPos):magnitude()
local memo = obj.memo or "NO_MEMO"
if distanceByMemo[memo] == nil or distanceByMemo[memo] > distance then
indexByMemo[memo] = obj
distanceByMemo[memo] = distance
end
end
end

View File

@ -26,7 +26,7 @@ do
---@param owner? tts__Object Object that owns the XML (or nil if Global)
---@return boolean visible Returns the new state of the visibility
function GlobalApi.changeWindowVisibility(playerColor, windowId, overrideState, owner)
Global.call("changeWindowVisibilityForColorWrapper", {
return Global.call("changeWindowVisibilityForColorWrapper", {
color = playerColor,
windowId = windowId,
overrideState = overrideState,

View File

@ -14,7 +14,7 @@ do
---@param card tts__Object Card to check for data
---@return boolean: True if this card has data in the helper, false otherwise
function TokenManagerApi.hasLocationData(card)
Global.call("callTable", {
return Global.call("callTable", {
{ "TokenManager", "hasLocationData" },
card
})

View File

@ -51,7 +51,7 @@ As a nice reminder the XML button takes on the Frost color and icon with the tex
> require...
----------------------------------------------------------]]
local chaosBagApi = require("chaosBag/ChaosBagApi")
local chaosBagApi = require("chaosbag/ChaosBagApi")
-- intentionally global
hasXML = true