initial commit
This commit is contained in:
parent
f2dd81e5d1
commit
e3a1a0ce2d
@ -18,7 +18,8 @@
|
||||
"Damage.cd2a02",
|
||||
"Horror.36be72",
|
||||
"ClueDoom.a3fb6c",
|
||||
"Resource.00d19a"
|
||||
"Resource.00d19a",
|
||||
"ResourceCounter.498ec0"
|
||||
],
|
||||
"ContainedObjects_path": "TokenSource.124381",
|
||||
"Description": "",
|
||||
|
57
objects/TokenSource.124381/ResourceCounter.498ec0.json
Normal file
57
objects/TokenSource.124381/ResourceCounter.498ec0.json
Normal file
@ -0,0 +1,57 @@
|
||||
{
|
||||
"AltLookAngle": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"Autoraise": true,
|
||||
"ColorDiffuse": {
|
||||
"b": 1,
|
||||
"g": 1,
|
||||
"r": 1
|
||||
},
|
||||
"CustomImage": {
|
||||
"CustomToken": {
|
||||
"MergeDistancePixels": 5,
|
||||
"Stackable": false,
|
||||
"StandUp": false,
|
||||
"Thickness": 0.1
|
||||
},
|
||||
"ImageScalar": 1,
|
||||
"ImageSecondaryURL": "",
|
||||
"ImageURL": "http://cloud-3.steamusercontent.com/ugc/949599153663401115/EAA6D40FC6E15204BBE551BCDED35CC8C75111BF/",
|
||||
"WidthScale": 0
|
||||
},
|
||||
"Description": "0",
|
||||
"DragSelectable": true,
|
||||
"GMNotes": "resourceCounter",
|
||||
"GUID": "498ec0",
|
||||
"Grid": true,
|
||||
"GridProjection": false,
|
||||
"Hands": false,
|
||||
"HideWhenFaceDown": false,
|
||||
"IgnoreFoW": false,
|
||||
"LayoutGroupSortIndex": 0,
|
||||
"Locked": false,
|
||||
"LuaScriptState": "0",
|
||||
"LuaScript_path": "TokenSource.124381/ResourceCounter.498ec0.ttslua",
|
||||
"MeasureMovement": false,
|
||||
"Name": "Custom_Token",
|
||||
"Nickname": "Resource Counter",
|
||||
"Snap": false,
|
||||
"Sticky": true,
|
||||
"Tooltip": false,
|
||||
"Transform": {
|
||||
"posX": 0,
|
||||
"posY": 3,
|
||||
"posZ": 0,
|
||||
"rotX": 0,
|
||||
"rotY": 270,
|
||||
"rotZ": 0,
|
||||
"scaleX": 0.26,
|
||||
"scaleY": 1,
|
||||
"scaleZ": 0.26
|
||||
},
|
||||
"Value": 0,
|
||||
"XmlUI": ""
|
||||
}
|
43
objects/TokenSource.124381/ResourceCounter.498ec0.ttslua
Normal file
43
objects/TokenSource.124381/ResourceCounter.498ec0.ttslua
Normal file
@ -0,0 +1,43 @@
|
||||
value = 0
|
||||
|
||||
function onSave() return JSON.encode(value) end
|
||||
|
||||
function onLoad(savedData)
|
||||
if savedData ~= "" then
|
||||
value = JSON.decode(savedData)
|
||||
end
|
||||
|
||||
self.createButton({
|
||||
label = tostring(value),
|
||||
click_function = "addOrSubtract",
|
||||
function_owner = self,
|
||||
position = { 0, 0.06, 0.1 },
|
||||
height = 600,
|
||||
width = 1000,
|
||||
scale = { 1.5, 1.5, 1.5 },
|
||||
font_size = 600,
|
||||
font_color = { 1, 1, 1, 100 },
|
||||
color = { 0, 0, 0, 0 }
|
||||
})
|
||||
self.addContextMenuItem("Value from description", function(color) setToDescription(color) end)
|
||||
end
|
||||
|
||||
function setToDescription(color)
|
||||
local newValue = tonumber(self.getDescription())
|
||||
if type(newValue) == "number" and newValue <= 99 and newValue >= 0 then
|
||||
updateVal(newValue)
|
||||
else
|
||||
printToColor("Description does not contain a valid one or two digit number!", color, "Red")
|
||||
end
|
||||
end
|
||||
|
||||
function addOrSubtract(_, _, isRightClick)
|
||||
local mod = isRightClick and -1 or 1
|
||||
newValue = math.min(math.max(value + mod, 0), 99)
|
||||
updateVal(newValue)
|
||||
end
|
||||
|
||||
function updateVal(newValue)
|
||||
value = newValue
|
||||
self.editButton({ index = 0, label = tostring(newValue) })
|
||||
end
|
@ -1,5 +1,3 @@
|
||||
local tokenManager = require("core/token/TokenManager")
|
||||
|
||||
---------------------------------------------------------
|
||||
-- general setup
|
||||
---------------------------------------------------------
|
||||
@ -36,6 +34,7 @@ local IS_RESHUFFLING = false
|
||||
local bagSearchers = {}
|
||||
local hideTitleSplashWaitFunctionId = nil
|
||||
local playmatAPI = require("playermat/PlaymatApi")
|
||||
local tokenManager = require("core/token/TokenManager")
|
||||
|
||||
---------------------------------------------------------
|
||||
-- data for tokens
|
||||
@ -819,6 +818,10 @@ function applyOptionPanelChange(id, state)
|
||||
-- update master clue counter
|
||||
getObjectFromGUID("4a3aa4").setVar("useClickableCounters", state)
|
||||
|
||||
-- option: Clickable resource counters
|
||||
elseif id == "useResourceCounters" then
|
||||
optionPanel[id] = state
|
||||
|
||||
-- option: Show Title on placing scenarios
|
||||
elseif id == "showTitleSplash" then
|
||||
optionPanel[id] = state
|
||||
|
@ -149,8 +149,12 @@ do
|
||||
-- spawned state object rather than spawning multiple tokens
|
||||
---@param shiftDown An offset for the z-value of this group of tokens
|
||||
TokenManager.spawnTokenGroup = function(card, tokenType, tokenCount, shiftDown)
|
||||
local optionPanel = Global.getTable("optionPanel")
|
||||
|
||||
if tokenType == "damage" or tokenType == "horror" then
|
||||
TokenManager.spawnCounterToken(card, tokenType, tokenCount, shiftDown)
|
||||
elseif tokenType == "resource" and optionPanel["useResourceCounters"] then
|
||||
TokenManager.spawnResourceCounterToken(card, tokenCount)
|
||||
else
|
||||
TokenManager.spawnMultipleTokens(card, tokenType, tokenCount, shiftDown)
|
||||
end
|
||||
@ -184,6 +188,14 @@ do
|
||||
end)
|
||||
end
|
||||
|
||||
TokenManager.spawnResourceCounterToken = function(card, tokenCount)
|
||||
local pos = card.getPosition() + Vector(0, 0.2, 0)
|
||||
local rot = card.getRotation()
|
||||
TokenManager.spawnToken(pos, "resourceCounter", rot, function(spawned)
|
||||
spawned.call("updateVal", tokenCount)
|
||||
end)
|
||||
end
|
||||
|
||||
-- Spawns a number of tokens.
|
||||
---@param tokenType String type of token to spawn, valid values are resource", "doom", or "clue".
|
||||
-- Other types should use spawnCounterToken()
|
||||
|
@ -415,6 +415,10 @@ function replenishTokens(card, count, replenish)
|
||||
if obj.getCustomObject().image == "http://cloud-3.steamusercontent.com/ugc/1758068501357192910/11DDDC7EF621320962FDCF3AE3211D5EDC3D1573/" then
|
||||
foundTokens = foundTokens + math.abs(obj.getQuantity())
|
||||
obj.destruct()
|
||||
elseif obj.getName() == "Resource Counter" then
|
||||
foundTokens = obj.getVar("value")
|
||||
obj.destruct()
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -142,6 +142,20 @@
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
<!-- Option: use clickable resource counters -->
|
||||
<Row class="option-text">
|
||||
<Cell class="option-text">
|
||||
<VerticalLayout class="text-column">
|
||||
<Text class="option-header">Use clickable resource counters</Text>
|
||||
<Text class="description">This enables spawning of clickable resource tokens for player cards.</Text>
|
||||
</VerticalLayout>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="useResourceCounters"
|
||||
onValueChanged="onClick_toggleOption(useResourceCounters)"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
<!-- Option: splash scenario name on setup -->
|
||||
<Row class="option-text">
|
||||
<Cell class="option-text">
|
||||
|
Loading…
Reference in New Issue
Block a user