more adjustments
This commit is contained in:
parent
73fa890eb2
commit
3be608a38c
@ -75,6 +75,5 @@
|
|||||||
"Name": "curse",
|
"Name": "curse",
|
||||||
"URL": "http://cloud-3.steamusercontent.com/ugc/2380784374775547135/2360372CBE9452CB7B4D135BE13BBA6D46B7D427/"
|
"URL": "http://cloud-3.steamusercontent.com/ugc/2380784374775547135/2360372CBE9452CB7B4D135BE13BBA6D46B7D427/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -69,6 +69,8 @@ do
|
|||||||
-- called by playermats (by the "Draw chaos token" button)
|
-- called by playermats (by the "Draw chaos token" button)
|
||||||
---@param mat tts__Object Playermat that triggered this
|
---@param mat tts__Object Playermat that triggered this
|
||||||
---@param drawAdditional boolean Controls whether additional tokens should be drawn
|
---@param drawAdditional boolean Controls whether additional tokens should be drawn
|
||||||
|
---@param tokenType string Name of token (e.g. "Bless") to be drawn from the bag (optional)
|
||||||
|
---@param sealedToken string GUID of the sealed token to be resolved instead of drawing a token from the bag
|
||||||
ChaosBagApi.drawChaosToken = function(mat, drawAdditional, tokenType, cardSealedToken)
|
ChaosBagApi.drawChaosToken = function(mat, drawAdditional, tokenType, cardSealedToken)
|
||||||
return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional, tokenType = tokenType, sealedToken = guidToBeResolved})
|
return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional, tokenType = tokenType, sealedToken = guidToBeResolved})
|
||||||
end
|
end
|
||||||
|
@ -303,34 +303,32 @@ function drawChaosToken(params)
|
|||||||
|
|
||||||
-- add the token to the list, compute new position based on list length
|
-- add the token to the list, compute new position based on list length
|
||||||
tokenOffset[1] = tokenOffset[1] + (0.17 * #chaosTokens)
|
tokenOffset[1] = tokenOffset[1] + (0.17 * #chaosTokens)
|
||||||
local tokenIndex = 0
|
|
||||||
|
|
||||||
if params.sealedToken then -- resolve a sealed token from a card
|
if params.sealedToken then -- resolve a sealed token from a card
|
||||||
|
|
||||||
token = getObjectFromGUID(params.sealedToken)
|
token = getObjectFromGUID(params.sealedToken)
|
||||||
token.setPositionSmooth(params.mat.positionToWorld(tokenOffset))
|
token.setPositionSmooth(params.mat.positionToWorld(tokenOffset))
|
||||||
local guid = token.getGUID()
|
local guid = token.getGUID()
|
||||||
local type = token.getName()
|
local tokenType = token.getName()
|
||||||
if type == "Bless" or type == "Curse" then
|
if tokenType == "Bless" or tokenType == "Curse" then
|
||||||
blessCurseManagerApi.releasedToken(type, guid)
|
blessCurseManagerApi.releasedToken(tokenType, guid)
|
||||||
end
|
end
|
||||||
tokenArrangerApi.layout()
|
tokenArrangerApi.layout()
|
||||||
else -- take a token from the bag, either specified or random
|
else -- take a token from the bag, either specified or random
|
||||||
|
local takeParameters = {
|
||||||
|
position = params.mat.positionToWorld(tokenOffset),
|
||||||
|
rotation = params.mat.getRotation()
|
||||||
|
}
|
||||||
|
|
||||||
if params.tokenType then
|
if params.tokenType then
|
||||||
for i, lookedForToken in ipairs(chaosBag.getObjects()) do
|
for i, lookedForToken in ipairs(chaosBag.getObjects()) do
|
||||||
if lookedForToken.name == params.tokenType then
|
if lookedForToken.name == params.tokenType then
|
||||||
tokenIndex = i - 1
|
takeParameters.index = i - 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
|
||||||
tokenIndex = 0
|
|
||||||
end
|
end
|
||||||
|
|
||||||
token = chaosBag.takeObject({
|
token = chaosBag.takeObject(takeParameters)
|
||||||
index = tokenIndex,
|
|
||||||
position = params.mat.positionToWorld(tokenOffset),
|
|
||||||
rotation = params.mat.getRotation()
|
|
||||||
})
|
|
||||||
|
|
||||||
end
|
end
|
||||||
-- get data for token description
|
-- get data for token description
|
||||||
|
@ -76,8 +76,10 @@ Thus it should be implemented like this:
|
|||||||
local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi")
|
local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi")
|
||||||
local chaosBagApi = require("chaosbag/ChaosBagApi")
|
local chaosBagApi = require("chaosbag/ChaosBagApi")
|
||||||
local tokenArrangerApi = require("accessories/TokenArrangerApi")
|
local tokenArrangerApi = require("accessories/TokenArrangerApi")
|
||||||
|
local playmatApi = require("playermat/PlaymatApi")
|
||||||
|
local guidReferenceApi = require("core/GUIDReferenceApi")
|
||||||
|
|
||||||
sealedTokens = {}
|
local sealedTokens = {}
|
||||||
local ID_URL_MAP = {}
|
local ID_URL_MAP = {}
|
||||||
local tokensInBag = {}
|
local tokensInBag = {}
|
||||||
|
|
||||||
@ -101,6 +103,15 @@ function generateContextMenu()
|
|||||||
self.addContextMenuItem("Release token(s)", releaseAllTokens)
|
self.addContextMenuItem("Release token(s)", releaseAllTokens)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if RESOLVE_TOKEN then
|
||||||
|
local firstTokenType
|
||||||
|
for tokenType, val in pairs(VALID_TOKENS) do
|
||||||
|
firstTokenType = tokenType
|
||||||
|
break
|
||||||
|
end
|
||||||
|
self.addContextMenuItem("Resolve " .. firstTokenType .. " token", resolveSealed)
|
||||||
|
end
|
||||||
|
|
||||||
-- conditional release option
|
-- conditional release option
|
||||||
if SHOW_MULTI_RETURN then
|
if SHOW_MULTI_RETURN then
|
||||||
self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens)
|
self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens)
|
||||||
@ -262,3 +273,15 @@ function returnToken(guid)
|
|||||||
blessCurseManagerApi.returnedToken(name, guid)
|
blessCurseManagerApi.returnedToken(name, guid)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- resolves sealed token as if it came from the chaos bag
|
||||||
|
function resolveSealed()
|
||||||
|
if #sealedTokens == 0 then
|
||||||
|
broadcastToAll("No tokens sealed.", "Red")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local closestMatColor = playmatApi.getMatColorByPosition(self.getPosition())
|
||||||
|
local mat = guidReferenceApi.getObjectByOwnerAndType(closestMatColor, "Playermat")
|
||||||
|
guidToBeResolved = table.remove(sealedTokens)
|
||||||
|
chaosBagApi.drawChaosToken(mat, true, _, guidToBeResolved)
|
||||||
|
end
|
@ -22,10 +22,8 @@ end
|
|||||||
|
|
||||||
|
|
||||||
function deleteButtons()
|
function deleteButtons()
|
||||||
self.UI.hide("active_bless")
|
self.UI.setAttribute("inactives", "active", false)
|
||||||
self.UI.hide("inactive_bless")
|
self.UI.setAttribute("actives", "active", false)
|
||||||
self.UI.hide("inactive_curse")
|
|
||||||
self.UI.hide("active_curse")
|
|
||||||
self.clearContextMenu()
|
self.clearContextMenu()
|
||||||
self.addContextMenuItem("Enable Helper", createButtons)
|
self.addContextMenuItem("Enable Helper", createButtons)
|
||||||
Wait.stop(loopId)
|
Wait.stop(loopId)
|
||||||
@ -38,6 +36,10 @@ function createButtons()
|
|||||||
self.addContextMenuItem("Clear Helper", deleteButtons)
|
self.addContextMenuItem("Clear Helper", deleteButtons)
|
||||||
self.UI.setAttribute("inactives", "active", true)
|
self.UI.setAttribute("inactives", "active", true)
|
||||||
self.UI.setAttribute("actives", "active", true)
|
self.UI.setAttribute("actives", "active", true)
|
||||||
|
self.UI.show("inactive_bless")
|
||||||
|
self.UI.show("inactive_curse")
|
||||||
|
self.UI.hide("active_bless")
|
||||||
|
self.UI.hide("active_curse")
|
||||||
currentState = "Empty"
|
currentState = "Empty"
|
||||||
loopId = Wait.time(countBlessCurse, 1, -1)
|
loopId = Wait.time(countBlessCurse, 1, -1)
|
||||||
end
|
end
|
||||||
@ -102,4 +104,14 @@ function countBlessCurse()
|
|||||||
end
|
end
|
||||||
currentState = "Equal"
|
currentState = "Equal"
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function errorMessage ()
|
||||||
|
if currentState == "Empty" then
|
||||||
|
broadcastToAll("There are no Bless or Curse tokens in the chaos bag.","Red")
|
||||||
|
elseif currentState =="More Bless" then
|
||||||
|
broadcastToAll("There are more Bless tokens than Curse tokens in the chaos bag.","Red")
|
||||||
|
else
|
||||||
|
broadcastToAll("There are more Curse tokens than Bless tokens in the chaos bag.","Red")
|
||||||
|
end
|
||||||
end
|
end
|
@ -4,28 +4,6 @@ VALID_TOKENS = {
|
|||||||
|
|
||||||
SHOW_SINGLE_RELEASE = true
|
SHOW_SINGLE_RELEASE = true
|
||||||
KEEP_OPEN = true
|
KEEP_OPEN = true
|
||||||
|
RESOLVE_TOKEN = true
|
||||||
|
|
||||||
require("playercards/CardsThatSealTokens")
|
require("playercards/CardsThatSealTokens")
|
||||||
|
|
||||||
local playmatApi = require("playermat/PlaymatApi")
|
|
||||||
local guidReferenceApi = require("core/GUIDReferenceApi")
|
|
||||||
local chaosBagApi = require("chaosbag/ChaosBagApi")
|
|
||||||
local contextMenuAdded
|
|
||||||
|
|
||||||
|
|
||||||
function onCollisionEnter()
|
|
||||||
if contextMenuAdded then return end
|
|
||||||
contextMenuAdded = true
|
|
||||||
self.addContextMenuItem("Resolve sealed Curse", resolveSealed)
|
|
||||||
end
|
|
||||||
|
|
||||||
function resolveSealed()
|
|
||||||
if #sealedTokens == 0 then
|
|
||||||
broadcastToAll("No tokens sealed.", "Red")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local closestMatColor = playmatApi.getMatColorByPosition(self.getPosition())
|
|
||||||
local mat = guidReferenceApi.getObjectByOwnerAndType(closestMatColor, "Playermat")
|
|
||||||
guidToBeResolved = table.remove(sealedTokens)
|
|
||||||
chaosBagApi.drawChaosToken(mat, true, _, guidToBeResolved)
|
|
||||||
end
|
|
@ -4,28 +4,6 @@ VALID_TOKENS = {
|
|||||||
|
|
||||||
SHOW_SINGLE_RELEASE = true
|
SHOW_SINGLE_RELEASE = true
|
||||||
KEEP_OPEN = true
|
KEEP_OPEN = true
|
||||||
|
RESOLVE_TOKEN = true
|
||||||
|
|
||||||
require("playercards/CardsThatSealTokens")
|
require("playercards/CardsThatSealTokens")
|
||||||
|
|
||||||
local playmatApi = require("playermat/PlaymatApi")
|
|
||||||
local guidReferenceApi = require("core/GUIDReferenceApi")
|
|
||||||
local chaosBagApi = require("chaosbag/ChaosBagApi")
|
|
||||||
local contextMenuAdded
|
|
||||||
|
|
||||||
|
|
||||||
function onCollisionEnter()
|
|
||||||
if contextMenuAdded then return end
|
|
||||||
contextMenuAdded = true
|
|
||||||
self.addContextMenuItem("Resolve sealed Bless", resolveSealed)
|
|
||||||
end
|
|
||||||
|
|
||||||
function resolveSealed()
|
|
||||||
if #sealedTokens == 0 then
|
|
||||||
broadcastToAll("No tokens sealed.", "Red")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local closestMatColor = playmatApi.getMatColorByPosition(self.getPosition())
|
|
||||||
local mat = guidReferenceApi.getObjectByOwnerAndType(closestMatColor, "Playermat")
|
|
||||||
guidToBeResolved = table.remove(sealedTokens)
|
|
||||||
chaosBagApi.drawChaosToken(mat, true, _, guidToBeResolved)
|
|
||||||
end
|
|
@ -2,26 +2,6 @@ VALID_TOKENS = {
|
|||||||
["Elder Sign"] = true
|
["Elder Sign"] = true
|
||||||
}
|
}
|
||||||
|
|
||||||
require("playercards/CardsThatSealTokens")
|
RESOLVE_TOKEN = true
|
||||||
|
|
||||||
local playmatApi = require("playermat/PlaymatApi")
|
require("playercards/CardsThatSealTokens")
|
||||||
local guidReferenceApi = require("core/GUIDReferenceApi")
|
|
||||||
local chaosBagApi = require("chaosbag/ChaosBagApi")
|
|
||||||
local contextMenuAdded
|
|
||||||
|
|
||||||
function onCollisionEnter()
|
|
||||||
if contextMenuAdded then return end
|
|
||||||
contextMenuAdded = true
|
|
||||||
self.addContextMenuItem("Resolve Elder Sign", resolveSealed)
|
|
||||||
end
|
|
||||||
|
|
||||||
function resolveSealed()
|
|
||||||
if #sealedTokens == 0 then
|
|
||||||
broadcastToAll("No tokens sealed.", "Red")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local closestMatColor = playmatApi.getMatColorByPosition(self.getPosition())
|
|
||||||
local mat = guidReferenceApi.getObjectByOwnerAndType(closestMatColor, "Playermat")
|
|
||||||
guidToBeResolved = table.remove(sealedTokens)
|
|
||||||
chaosBagApi.drawChaosToken(mat, true, _, guidToBeResolved)
|
|
||||||
end
|
|
@ -13,7 +13,7 @@
|
|||||||
<Row>
|
<Row>
|
||||||
<Cell>
|
<Cell>
|
||||||
<Button id="active_curse" padding="50 50 50 50" icon="curse" iconWidth="400" font="font_teutonic-arkham" fontSize="300" textColor="White"
|
<Button id="active_curse" padding="50 50 50 50" icon="curse" iconWidth="400" font="font_teutonic-arkham" fontSize="300" textColor="White"
|
||||||
onClick="resolveCurse" color="#37232FE6" iconAlignment="Right">Resolve</Button>
|
onClick="resolveCurse" color="#633A84E6" iconAlignment="Right">Resolve</Button>
|
||||||
</Cell>
|
</Cell>
|
||||||
</Row>
|
</Row>
|
||||||
</TableLayout>
|
</TableLayout>
|
||||||
@ -28,13 +28,13 @@
|
|||||||
<Row>
|
<Row>
|
||||||
<Cell>
|
<Cell>
|
||||||
<Button id="inactive_bless" padding="50 50 50 50" icon="bless" iconWidth="400" font="font_teutonic-arkham" fontSize="300" textColor="#A0A0A0"
|
<Button id="inactive_bless" padding="50 50 50 50" icon="bless" iconWidth="400" font="font_teutonic-arkham" fontSize="300" textColor="#A0A0A0"
|
||||||
color="#5C5C5CE6" iconAlignment="Right">Resolve</Button>
|
onClick="errorMessage" color="#353535E6" iconAlignment="Right">Resolve</Button>
|
||||||
</Cell>
|
</Cell>
|
||||||
</Row>
|
</Row>
|
||||||
<Row>
|
<Row>
|
||||||
<Cell>
|
<Cell>
|
||||||
<Button id="inactive_curse" padding="50 50 50 50" icon="curse" iconWidth="400" font="font_teutonic-arkham" fontSize="300" textColor="#A0A0A0"
|
<Button id="inactive_curse" padding="50 50 50 50" icon="curse" iconWidth="400" font="font_teutonic-arkham" fontSize="300" textColor="#A0A0A0"
|
||||||
color="#353535E6" iconAlignment="Right">Resolve</Button>
|
onClick="errorMessage" color="#353535E6" iconAlignment="Right">Resolve</Button>
|
||||||
</Cell>
|
</Cell>
|
||||||
</Row>
|
</Row>
|
||||||
</TableLayout>
|
</TableLayout>
|
||||||
|
Loading…
Reference in New Issue
Block a user