Compare commits

..

No commits in common. "d41b69bf4a6b91a6eb6bf0b4c458e75047b03163" and "7a5ce98c41c1358938e3ae5e70b613c825666abf" have entirely different histories.

539 changed files with 25666 additions and 37347 deletions

File diff suppressed because it is too large Load Diff

View File

@ -73,6 +73,7 @@
<!-- window to select downloadable content --> <!-- window to select downloadable content -->
<VerticalLayout id="downloadWindow" <VerticalLayout id="downloadWindow"
visibility="Admin"
color="black" color="black"
active="false" active="false"
height="800" height="800"
@ -567,13 +568,16 @@
<!-- Default formatting --> <!-- Default formatting -->
<Defaults> <Defaults>
<Text color="#FFFFFF" <Text color="#FFFFFF"
alignment="MiddleLeft"/> alignment="MiddleLeft" />
<Dropdown rectAlignment="MiddleCenter"/> <Toggle isOn="False"
rectAlignment="MiddleRight" />
<Dropdown rectAlignment="MiddleCenter" />
<Cell dontUseTableCellBackground="true" <Cell dontUseTableCellBackground="true"
outlineSize="0 1" outlineSize="0 1"
outline="grey"/> outline="grey" />
<!-- main window --> <!-- main window -->
<TableLayout class="window" <TableLayout class="window"
@ -585,20 +589,20 @@
outline="grey" outline="grey"
showAnimation="SlideIn_Right" showAnimation="SlideIn_Right"
hideAnimation="SlideOut_Right" hideAnimation="SlideOut_Right"
animationDuration="0.2"/> animationDuration="0.2" />
<!-- group headers --> <!-- group headers -->
<Row class="group-header" <Row class="group-header"
preferredHeight="44"/> preferredHeight="44" />
<Cell class="group-header" <Cell class="group-header"
padding="10 10 0 0" padding="10 10 0 0"
columnSpan="3" columnSpan="3"
color="#222222"/> color="#222222" />
<Panel class="group-header" <Panel class="group-header"
padding="5 0 0 0"/> padding="5 0 0 0" />
<Text class="group-header" <Text class="group-header"
fontSize="28" fontSize="28"
font="font_teutonic-arkham"/> font="font_teutonic-arkham" />
<!-- options --> <!-- options -->
<Row class="option-text" <Row class="option-text"
@ -627,14 +631,6 @@
font="font_teutonic-arkham"/> font="font_teutonic-arkham"/>
<Panel class="doubleColumn-wrapper" <Panel class="doubleColumn-wrapper"
padding="0 17 3 3"/> padding="0 17 3 3"/>
<Button class="optionToggle"
image="option-off"
rectAlignment="MiddleRight"
offsetXY="-30 0"
colors="#FFFFFF|#dfdfdf"
height="36"
width="65"
ignoreLayout="True"/>
<!-- buttons at the bottom --> <!-- buttons at the bottom -->
<Button class="bottomButtons" <Button class="bottomButtons"
@ -656,6 +652,7 @@
<!-- Option Panel --> <!-- Option Panel -->
<TableLayout id="optionPanel" <TableLayout id="optionPanel"
class="window" class="window"
visibility="Admin"
rectAlignment="LowerRight" rectAlignment="LowerRight"
offsetXY="-50 80" offsetXY="-50 80"
raycastTarget="true"> raycastTarget="true">
@ -721,9 +718,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="showTitleSplash"
id="showTitleSplash" onValueChanged="onClick_toggleOption(showTitleSplash)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
@ -746,9 +742,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="playAreaSnapTags"
id="playAreaSnapTags" onValueChanged="onClick_toggleOption(playAreaSnapTags)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
@ -761,9 +756,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="playAreaConnections"
id="playAreaConnections" onValueChanged="onClick_toggleOption(playAreaConnections)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
@ -793,9 +787,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="changePlayAreaImage"
id="changePlayAreaImage" onValueChanged="onClick_toggleOption(changePlayAreaImage)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
@ -818,9 +811,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="useSnapTags"
id="useSnapTags" onValueChanged="onClick_toggleOption(useSnapTags)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
@ -833,9 +825,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="showDrawButton"
id="showDrawButton" onValueChanged="onClick_toggleOption(showDrawButton)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
@ -848,9 +839,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="useClueClickers"
id="useClueClickers" onValueChanged="onClick_toggleOption(useClueClickers)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
@ -915,9 +905,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="showAttachmentHelper"
id="showAttachmentHelper" onValueChanged="onClick_toggleOption(showAttachmentHelper)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
@ -930,9 +919,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="showCleanUpHelper"
id="showCleanUpHelper" onValueChanged="onClick_toggleOption(showCleanUpHelper)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
@ -945,9 +933,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="showCYOA"
id="showCYOA" onValueChanged="onClick_toggleOption(showCYOA)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
@ -960,9 +947,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="showDisplacementTool"
id="showDisplacementTool" onValueChanged="onClick_toggleOption(showDisplacementTool)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
@ -975,9 +961,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="showHandHelper"
id="showHandHelper" onValueChanged="onClick_toggleOption(showHandHelper)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
@ -990,9 +975,8 @@
</Panel> </Panel>
</Cell> </Cell>
<Cell class="option-button"> <Cell class="option-button">
<Button class="optionToggle" <Toggle id="showSearchAssistant"
id="showSearchAssistant" onValueChanged="onClick_toggleOption(showSearchAssistant)"/>
onClick="onClick_toggleOption"/>
</Cell> </Cell>
</Row> </Row>
</TableLayout> </TableLayout>

View File

@ -80,9 +80,24 @@ ComponentTags:
- displayed: CameraZoom_ignore - displayed: CameraZoom_ignore
normalized: camerazoom_ignore normalized: camerazoom_ignore
CustomUIAssets: CustomUIAssets:
- Name: refresh
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/1695031152736214852/EC3BBEF1A1788381A8F4C5ACB7FB27770CAF03C5/
- Name: close - Name: close
Type: 0 Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/1695031152736214756/2EEB07E453A7ECF4BE5A1030A253185B37A7CDAB/ URL: http://cloud-3.steamusercontent.com/ugc/1695031152736214756/2EEB07E453A7ECF4BE5A1030A253185B37A7CDAB/
- Name: cthulhu
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/1782854877010107768/BC6A97F193385D01C1A9149B68923F55A284CB2D/
- Name: dark-cult
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/1782854877010108105/08594607341D6537C28A08A34CE82159025AB8DB/
- Name: yog-sothoth
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/1782854877010107124/D8042D1A1B08CFB7E76488B09216B4611D85A2B9/
- Name: elder-sign
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/1782854877010107442/43BC029410751208A90AE7FDEBCB587A0E9403D7/
- Name: devourer - Name: devourer
Type: 0 Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/1782854877010106784/6E00433E3425D0A7C6121E0DDB6A79167BA78569/ URL: http://cloud-3.steamusercontent.com/ugc/1782854877010106784/6E00433E3425D0A7C6121E0DDB6A79167BA78569/
@ -98,18 +113,24 @@ CustomUIAssets:
- Name: option-gear - Name: option-gear
Type: 0 Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2026086584372569912/5CB461AEAE2E59D3064D90A776EB86C46081EC78/ URL: http://cloud-3.steamusercontent.com/ugc/2026086584372569912/5CB461AEAE2E59D3064D90A776EB86C46081EC78/
- Name: option-on - Name: font_birmingham
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2462982115668997008/2178787B67B3C96F3419EDBAB8420E39893756BC/
- Name: option-off
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2462982115668996901/D6438ECBB11DECC6DB9987589FF526FBAD4D2368/
- Name: font_arkhamicons
Type: 1 Type: 1
URL: http://cloud-3.steamusercontent.com/ugc/2462982115649258367/C20CC4C299A6FE5F1ECAB968E15BE590337CC019/ URL: http://cloud-3.steamusercontent.com/ugc/2027213118466443497/3CF9BB9AF968D245961494CC9A151774EB9BA638/
- Name: font_columbus
Type: 1
URL: http://cloud-3.steamusercontent.com/ugc/2027213118466515872/F473E4ACC75ACB6CE07457C45290B4912E0B3286/
- Name: font_oldremington
Type: 1
URL: http://cloud-3.steamusercontent.com/ugc/2027213118466515932/AFCE53F1E1D9580D166F53AD9EB0D77A331D4A26/
- Name: font_teutonic-arkham - Name: font_teutonic-arkham
Type: 1 Type: 1
URL: http://cloud-3.steamusercontent.com/ugc/2027213118467703445/89328E273B4C5180BF491516CE998DE3C604E162/ URL: http://cloud-3.steamusercontent.com/ugc/2027213118467703445/89328E273B4C5180BF491516CE998DE3C604E162/
- Name: font_uglyqua
Type: 1
URL: http://cloud-3.steamusercontent.com/ugc/2027213118466516005/113C19D37CFFA9E554394FD5B11B32967F846A62/
- Name: font_chinese_fzlibian
Type: 1
URL: http://cloud-3.steamusercontent.com/ugc/2028355502896482829/8DAB311590B97586309E66D795AC2C43D4913188/
- Name: header_cover - Name: header_cover
Type: 0 Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2280574378889753624/53E7443E2A9957BC5CA4D73B67D5C1C30971C9F9/ URL: http://cloud-3.steamusercontent.com/ugc/2280574378889753624/53E7443E2A9957BC5CA4D73B67D5C1C30971C9F9/
@ -131,15 +152,15 @@ CustomUIAssets:
- Name: SpeechBubble - Name: SpeechBubble
Type: 0 Type: 0
URL: https://i.imgur.com/6MReiEO.png URL: https://i.imgur.com/6MReiEO.png
- Name: Inv-Roland
Type: 0
URL: https://i.imgur.com/lx6unDY.png
- Name: NextArrow - Name: NextArrow
Type: 0 Type: 0
URL: https://i.imgur.com/MztSQis.png URL: https://i.imgur.com/MztSQis.png
- Name: Exit - Name: Exit
Type: 0 Type: 0
URL: https://i.imgur.com/8qmTXwt.png URL: https://i.imgur.com/8qmTXwt.png
- Name: Inv-Roland
Type: 0
URL: https://i.imgur.com/lx6unDY.png
- Name: Inv-Mandy - Name: Inv-Mandy
Type: 0 Type: 0
URL: https://i.imgur.com/hniMC5g.png URL: https://i.imgur.com/hniMC5g.png
@ -203,34 +224,7 @@ CustomUIAssets:
- Name: box-cover-mask-wide - Name: box-cover-mask-wide
Type: 0 Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2115061298538827369/A20C2ECB8ECDC1B0AD8B2B38F68CA1C1F5E07D37/ URL: http://cloud-3.steamusercontent.com/ugc/2115061298538827369/A20C2ECB8ECDC1B0AD8B2B38F68CA1C1F5E07D37/
- Name: token-skull Date: Fri Feb 16 18:27:41 UTC 2024
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2380784374775547231/E0FEEF462DE4E7704832CA2415D0D027A6BF5041/
- Name: token-bless
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2380784374775547028/7855033DE0EB1FDDF706E1303054D35FE0902532/
- Name: token-curse
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2380784374775547135/2360372CBE9452CB7B4D135BE13BBA6D46B7D427/
- Name: token-cultist
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2380784374792650461/10D8037632900AA86045BDD42A564716D5855B1B/
- Name: token-tablet
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2380784374792650857/29DAE514E5C838C24C90ABBFFF92B1359B9A2F76/
- Name: token-elder-thing
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2380784374792650683/1C046B6335317CA1AEBFC80645EEC18852D83D80/
- Name: token-frost
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2380784374792650766/73E07A50BE6FD9BED266F3421B472C4BF913DE81/
- Name: token-auto-fail
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2510267932886739653/CB7AA2D73777EF5938A6E6CD664B2ABA52B6E20A/
- Name: token-custom-token
Type: 0
URL: http://cloud-3.steamusercontent.com/ugc/2380784374792650571/E4C2B2B69282A4EE15FE290FF6B08BEFC8FCA65C/
Date: Sun May 12 13:10:46 CEST 2024
DecalPallet: DecalPallet:
- ImageURL: http://cloud-3.steamusercontent.com/ugc/1474319121424323663/BC5570ECF747F1B30224461B576E8B0FE7FA5F33/ - ImageURL: http://cloud-3.steamusercontent.com/ugc/1474319121424323663/BC5570ECF747F1B30224461B576E8B0FE7FA5F33/
Name: Achivement Checkmark Name: Achivement Checkmark
@ -239,7 +233,7 @@ DecalPallet:
Name: Victory Display Name: Victory Display
Size: 15 Size: 15
Decals: [] Decals: []
EpochTime: 1715512246 EpochTime: 1708108061
GameComplexity: '' GameComplexity: ''
GameMode: Arkham Horror LCG - Super Complete Edition GameMode: Arkham Horror LCG - Super Complete Edition
GameType: '' GameType: ''
@ -290,7 +284,7 @@ Lighting:
LutIndex: 0 LutIndex: 0
ReflectionIntensity: 1 ReflectionIntensity: 1
LuaScript: !include 'unpacked.ttslua' LuaScript: !include 'unpacked.ttslua'
LuaScriptState: '{"acknowledgedUpgradeVersions":[],"chaosTokensGUID":[],"optionPanel":{"cardLanguage":"en","changePlayAreaImage":false,"playAreaConnectionColor":{"a":1,"b":0.4,"g":0.4,"r":0.4},"playAreaConnections":true,"playAreaSnapTags":true,"showAttachmentHelper":false,"showCleanUpHelper":false,"showCYOA":false,"showDisplacementTool":false,"showDrawButton":false,"showHandHelper":false,"showSearchAssistant":false,"showTitleSplash":true,"useClueClickers":false,"useResourceCounters":"disabled","useSnapTags":true}}' LuaScriptState: '{"acknowledgedUpgradeVersions":[],"chaosTokensGUID":[],"optionPanel":{"cardLanguage":"en","changePlayAreaImage":false,"playAreaConnectionColor":{"a":1,"b":0.4,"g":0.4,"r":0.4},"playAreaConnections":true,"playAreaSnapTags":true,"showAttachmentHelper":false,"showCleanUpHelper":false,"showCYOA":false,"showDisplacementTool":false,"showDrawButton":false,"showHandHelper":[],"showSearchAssistant":[],"showTitleSplash":true,"useClueClickers":false,"useResourceCounters":"disabled","useSnapTags":true}}'
MusicPlayer: MusicPlayer:
AudioLibrary: AudioLibrary:
- Item1: http://cloud-3.steamusercontent.com/ugc/784110538847453001/4481D1CC5684FCF04AB143954DEFE09E94BF5CEB/ - Item1: http://cloud-3.steamusercontent.com/ugc/784110538847453001/4481D1CC5684FCF04AB143954DEFE09E94BF5CEB/
@ -520,8 +514,7 @@ ObjectStates:
- !include 'unpacked/Custom_Model Decoration - Ammo b43845.yaml' - !include 'unpacked/Custom_Model Decoration - Ammo b43845.yaml'
- !include 'unpacked/Custom_Model Decoration - Ammo d35ee9.yaml' - !include 'unpacked/Custom_Model Decoration - Ammo d35ee9.yaml'
- !include 'unpacked/Custom_Token Victory Display 6ccd6d.yaml' - !include 'unpacked/Custom_Token Victory Display 6ccd6d.yaml'
- !include 'unpacked/Custom_Tile Official Releases Overview 8e22bb.yaml' - !include 'unpacked/Custom_Tile Campaign Overview e03c01.yaml'
- !include 'unpacked/Custom_Tile Fan-Made Expansion Overview de7cae.yaml'
- !include 'unpacked/Bag OptionPanel Source 830bd0.yaml' - !include 'unpacked/Bag OptionPanel Source 830bd0.yaml'
- !include 'unpacked/Custom_Assetbundle SoundCube 3c988f.yaml' - !include 'unpacked/Custom_Assetbundle SoundCube 3c988f.yaml'
- !include 'unpacked/go_game_piece_white Game Key Handler fce69c.yaml' - !include 'unpacked/go_game_piece_white Game Key Handler fce69c.yaml'
@ -553,7 +546,9 @@ ObjectStates:
- !include 'unpacked/Custom_Tile Tokencache_Curse 16a9a7.yaml' - !include 'unpacked/Custom_Tile Tokencache_Curse 16a9a7.yaml'
- !include 'unpacked/Custom_Tile Tokencache_Frost b2b7be.yaml' - !include 'unpacked/Custom_Tile Tokencache_Frost b2b7be.yaml'
- !include 'unpacked/BlockSquare Physics Detector b300d8.yaml' - !include 'unpacked/BlockSquare Physics Detector b300d8.yaml'
- !include 'unpacked/Notecard Arkham SCE 3.8.0 - 5122024 - Page 1 bd6b3e.yaml' - !include 'unpacked/CardCustom New Player Back 85145d.yaml'
- !include 'unpacked/CardCustom New Encounter Back 5d5637.yaml'
- !include 'unpacked/Notecard Arkham SCE 3.6.0 - 2162024 - Page 1 2d0dbb.yaml'
PlayArea: 1 PlayArea: 1
PlayerCounts: PlayerCounts:
- 0 - 0
@ -561,7 +556,7 @@ PlayerCounts:
PlayingTime: PlayingTime:
- 0 - 0
- 0 - 0
SaveName: Arkham SCE - 3.8.0 SaveName: Arkham SCE - 3.6.0
Sky: Sky_Museum Sky: Sky_Museum
SkyURL: https://i.imgur.com/GkQqaOF.jpg SkyURL: https://i.imgur.com/GkQqaOF.jpg
SnapPoints: SnapPoints:
@ -629,6 +624,70 @@ SnapPoints:
x: -3.85 x: -3.85
y: 1.58 y: 1.58
z: -10.39 z: -10.39
- Position:
x: -45.3
y: 1.48
z: 31.67
- Position:
x: -45.3
y: 1.48
z: 29.73
- Position:
x: -45.3
y: 1.48
z: 27.8
- Position:
x: -45.3
y: 1.48
z: 25.86
- Position:
x: -45.3
y: 1.48
z: 23.93
- Position:
x: -45.3
y: 1.48
z: 21.99
- Position:
x: -45.3
y: 1.48
z: 20.06
- Position:
x: -45.3
y: 1.48
z: -20.62
- Position:
x: -45.3
y: 1.48
z: -22.55
- Position:
x: -45.3
y: 1.48
z: -24.49
- Position:
x: -45.3
y: 1.48
z: -26.43
- Position:
x: -45.3
y: 1.48
z: -28.36
- Position:
x: -45.3
y: 1.48
z: -30.3
- Position:
x: -45.3
y: 1.48
z: -32.23
- Position:
x: -28.64
y: 1.48
z: -38.65
Rotation:
x: 0
y: 315
z: 0
- Position: - Position:
x: -56.24 x: -56.24
y: 1.49 y: 1.49

View File

@ -41,6 +41,9 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (
return require, loaded, register, modules return require, loaded, register, modules
end)(nil) end)(nil)
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
require("arkhamdb/HotfixBag")
end)
__bundle_register("arkhamdb/HotfixBag", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("arkhamdb/HotfixBag", function(require, _LOADED, __bundle_register, __bundle_modules)
-- A Hotfix bag contains replacement cards for the All Cards Bag, and should -- A Hotfix bag contains replacement cards for the All Cards Bag, and should
-- have the 'AllCardsHotfix' tag on the object. Code for the All Cards Bag will -- have the 'AllCardsHotfix' tag on the object. Code for the All Cards Bag will
@ -142,7 +145,6 @@ do
return getObjectFromGUID("123456") return getObjectFromGUID("123456")
end end
-- Returns the matching object
---@param owner string Parent object for this search ---@param owner string Parent object for this search
---@param type string Type of object to search for ---@param type string Type of object to search for
---@return any: Object reference to the matching object ---@return any: Object reference to the matching object
@ -150,21 +152,21 @@ do
return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type }) return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type })
end end
-- Returns all matching objects as a table with references -- returns all matching objects as a table with references
---@param type string Type of object to search for ---@param type string Type of object to search for
---@return table: List of object references to matching objects ---@return table: List of object references to matching objects
GUIDReferenceApi.getObjectsByType = function(type) GUIDReferenceApi.getObjectsByType = function(type)
return getGuidHandler().call("getObjectsByType", type) return getGuidHandler().call("getObjectsByType", type)
end end
-- Returns all matching objects as a table with references -- returns all matching objects as a table with references
---@param owner string Parent object for this search ---@param owner string Parent object for this search
---@return table: List of object references to matching objects ---@return table: List of object references to matching objects
GUIDReferenceApi.getObjectsByOwner = function(owner) GUIDReferenceApi.getObjectsByOwner = function(owner)
return getGuidHandler().call("getObjectsByOwner", owner) return getGuidHandler().call("getObjectsByOwner", owner)
end end
-- Sends new information to the reference handler to edit the main index -- sends new information to the reference handler to edit the main index
---@param owner string Parent of the object ---@param owner string Parent of the object
---@param type string Type of the object ---@param type string Type of the object
---@param guid string GUID of the object ---@param guid string GUID of the object
@ -176,17 +178,7 @@ do
}) })
end end
-- Returns the owner of an object or the object it's located on
---@param object tts__GameObject Object for this search
---@return string: Parent of the object or object it's located on
GUIDReferenceApi.getOwnerOfObject = function(object)
return getGuidHandler().call("getOwnerOfObject", object)
end
return GUIDReferenceApi return GUIDReferenceApi
end end
end) end)
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
require("arkhamdb/HotfixBag")
end)
return __bundle_require("__root") return __bundle_require("__root")

View File

@ -41,9 +41,6 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (
return require, loaded, register, modules return require, loaded, register, modules
end)(nil) end)(nil)
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
require("playercards/AllCardsBag")
end)
__bundle_register("playercards/AllCardsBag", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("playercards/AllCardsBag", function(require, _LOADED, __bundle_register, __bundle_modules)
local cardIdIndex = { } local cardIdIndex = { }
local classAndLevelIndex = { } local classAndLevelIndex = { }
@ -104,68 +101,73 @@ function onObjectLeaveContainer(container, _)
end end
end end
-- Create the card indexes by iterating all cards in the bag, parsing their metadata -- Create the card indexes by iterating all cards in the bag, parsing their
-- and creating the keyed lookup tables for the cards. This is a coroutine which will -- metadata, and creating the keyed lookup tables for the cards. This is a
-- spread the workload by processing 20 cards before yielding. -- coroutine which will spread the workload by processing 20 cards before
-- yielding. Based on the current count of cards this will require
-- approximately 60 frames to complete.
function buildIndex() function buildIndex()
local cardCount = 0 local cardCount = 0
indexingDone = false indexingDone = false
if (self.getData().ContainedObjects == nil) then
-- process the allcardsbag itself return 1
for _, cardData in ipairs(self.getData().ContainedObjects) do end
addCardToIndex(cardData) for i, cardData in ipairs(self.getData().ContainedObjects) do
local cardMetadata = JSON.decode(cardData.GMNotes)
if (cardMetadata ~= nil) then
addCardToIndex(cardData, cardMetadata)
cardCount = cardCount + 1 cardCount = cardCount + 1
if cardCount > 19 then if cardCount > 9 then
cardCount = 0 cardCount = 0
coroutine.yield(0) coroutine.yield(0)
end end
end end
end
-- process hotfix bags (and the additional playercards bag) local hotfixBags = getObjectsWithTag("AllCardsHotfix")
for _, hotfixBag in ipairs(getObjectsWithTag("AllCardsHotfix")) do for _, hotfixBag in ipairs(hotfixBags) do
local hotfixData = hotfixBag.getData() if (#hotfixBag.getObjects() > 0) then
if not hotfixData.ContainedObjects then break end for i, cardData in ipairs(hotfixBag.getData().ContainedObjects) do
for _, cardData in ipairs(hotfixData.ContainedObjects) do
-- process containers
if cardData.ContainedObjects then if cardData.ContainedObjects then
for _, deepCardData in ipairs(cardData.ContainedObjects) do for j, deepCardData in ipairs(cardData.ContainedObjects) do
addCardToIndex(deepCardData) local deepCardMetadata = JSON.decode(deepCardData.GMNotes)
if deepCardMetadata ~= nil then
addCardToIndex(deepCardData, deepCardMetadata)
cardCount = cardCount + 1 cardCount = cardCount + 1
if cardCount > 19 then if cardCount > 9 then
cardCount = 0 cardCount = 0
coroutine.yield(0) coroutine.yield(0)
end end
end end
-- process single cards end
else else
addCardToIndex(cardData) local cardMetadata = JSON.decode(cardData.GMNotes)
if cardMetadata ~= nil then
addCardToIndex(cardData, cardMetadata)
cardCount = cardCount + 1 cardCount = cardCount + 1
if cardCount > 19 then if cardCount > 9 then
cardCount = 0 cardCount = 0
coroutine.yield(0) coroutine.yield(0)
end end
end end
end end
end end
end
end
buildSupplementalIndexes() buildSupplementalIndexes()
indexingDone = true indexingDone = true
return 1 return 1
end end
-- Adds a card to any indexes it should be a part of, based on its metadata -- Adds a card to any indexes it should be a part of, based on its metadata.
---@param cardData table TTS object data for the card ---@param cardData table TTS object data for the card
function addCardToIndex(cardData) ---@param cardMetadata table SCED metadata for the card
-- using the more efficient 'json.parse()' to speed this process up function addCardToIndex(cardData, cardMetadata)
local cardMetadata = json.parse(cardData.GMNotes)
if not cardMetadata then return end
-- use the ZoopGuid as fallback if no id present -- use the ZoopGuid as fallback if no id present
cardIdIndex[cardMetadata.id or cardMetadata.TtsZoopGuid] = { data = cardData, metadata = cardMetadata } if cardMetadata.id == nil and cardMetadata.TtsZoopGuid then
cardMetadata.id = cardMetadata.TtsZoopGuid
-- also add data for alternate ids end
if cardMetadata.alternate_ids ~= nil then cardIdIndex[cardMetadata.id] = { data = cardData, metadata = cardMetadata }
if (cardMetadata.alternate_ids ~= nil) then
for _, alternateId in ipairs(cardMetadata.alternate_ids) do for _, alternateId in ipairs(cardMetadata.alternate_ids) do
cardIdIndex[alternateId] = { data = cardData, metadata = cardMetadata } cardIdIndex[alternateId] = { data = cardData, metadata = cardMetadata }
end end
@ -174,10 +176,13 @@ end
function buildSupplementalIndexes() function buildSupplementalIndexes()
for cardId, card in pairs(cardIdIndex) do for cardId, card in pairs(cardIdIndex) do
local cardData = card.data
local cardMetadata = card.metadata local cardMetadata = card.metadata
-- If the ID key and the metadata ID don't match this is a duplicate card created by an alternate_id, and we should skip it -- If the ID key and the metadata ID don't match this is a duplicate card created by an
-- alternate_id, and we should skip it
if cardId == cardMetadata.id then if cardId == cardMetadata.id then
-- Add card to the basic weakness list, if appropriate. Some weaknesses have multiple copies, and are added multiple times -- Add card to the basic weakness list, if appropriate. Some weaknesses have
-- multiple copies, and are added multiple times
if cardMetadata.weakness then if cardMetadata.weakness then
table.insert(uniqueWeaknessList, cardMetadata.id) table.insert(uniqueWeaknessList, cardMetadata.id)
if cardMetadata.basicWeaknessCount ~= nil then if cardMetadata.basicWeaknessCount ~= nil then
@ -187,31 +192,56 @@ function buildSupplementalIndexes()
end end
end end
-- Excludes signature cards (which have no class or level) -- Add the card to the appropriate class and level indexes
if cardMetadata.class ~= nil and cardMetadata.level ~= nil then local isGuardian = false
local isSeeker = false
local isMystic = false
local isRogue = false
local isSurvivor = false
local isNeutral = false
local upgradeKey local upgradeKey
if cardMetadata.level > 0 then -- Excludes signature cards (which have no class or level) and alternate
-- ID entries
if (cardMetadata.class ~= nil and cardMetadata.level ~= nil) then
isGuardian = string.match(cardMetadata.class, "Guardian")
isSeeker = string.match(cardMetadata.class, "Seeker")
isMystic = string.match(cardMetadata.class, "Mystic")
isRogue = string.match(cardMetadata.class, "Rogue")
isSurvivor = string.match(cardMetadata.class, "Survivor")
isNeutral = string.match(cardMetadata.class, "Neutral")
if (cardMetadata.level > 0) then
upgradeKey = "-upgrade" upgradeKey = "-upgrade"
else else
upgradeKey = "-level0" upgradeKey = "-level0"
end end
if (isGuardian) then
-- parse classes (separated by "|") and add the card to the appropriate class and level indices table.insert(classAndLevelIndex["Guardian"..upgradeKey], cardMetadata.id)
for str in cardMetadata.class:gmatch("([^|]+)") do end
table.insert(classAndLevelIndex[str .. upgradeKey], cardMetadata.id) if (isSeeker) then
table.insert(classAndLevelIndex["Seeker"..upgradeKey], cardMetadata.id)
end
if (isMystic) then
table.insert(classAndLevelIndex["Mystic"..upgradeKey], cardMetadata.id)
end
if (isRogue) then
table.insert(classAndLevelIndex["Rogue"..upgradeKey], cardMetadata.id)
end
if (isSurvivor) then
table.insert(classAndLevelIndex["Survivor"..upgradeKey], cardMetadata.id)
end
if (isNeutral) then
table.insert(classAndLevelIndex["Neutral"..upgradeKey], cardMetadata.id)
end end
-- add to cycle index
local cycleName = cardMetadata.cycle local cycleName = cardMetadata.cycle
if cycleName ~= nil then if cycleName ~= nil then
cycleName = string.lower(cycleName) cycleName = string.lower(cycleName)
if string.match(cycleName, "return") then
-- remove "return to " from cycle names cycleName = string.sub(cycleName, 11)
cycleName = cycleName:gsub("return to ", "") end
if cycleName == "the night of the zealot" then
-- override cycle name for night of the zealot cycleName = "core"
cycleName = cycleName:gsub("the night of the zealot", "core") end
if cycleIndex[cycleName] == nil then if cycleIndex[cycleName] == nil then
cycleIndex[cycleName] = { } cycleIndex[cycleName] = { }
end end
@ -220,34 +250,29 @@ function buildSupplementalIndexes()
end end
end end
end end
-- sort class and level indices
for _, indexTable in pairs(classAndLevelIndex) do for _, indexTable in pairs(classAndLevelIndex) do
table.sort(indexTable, cardComparator) table.sort(indexTable, cardComparator)
end end
-- sort cycle indices
for _, indexTable in pairs(cycleIndex) do for _, indexTable in pairs(cycleIndex) do
table.sort(indexTable) table.sort(indexTable)
end end
-- sort weakness indices
table.sort(basicWeaknessList, cardComparator) table.sort(basicWeaknessList, cardComparator)
table.sort(uniqueWeaknessList, cardComparator) table.sort(uniqueWeaknessList, cardComparator)
end end
-- Comparison function used to sort the class card bag indexes. Sorts by card level, then name, then subname. -- Comparison function used to sort the class card bag indexes. Sorts by card
-- level, then name, then subname.
function cardComparator(id1, id2) function cardComparator(id1, id2)
local card1 = cardIdIndex[id1] local card1 = cardIdIndex[id1]
local card2 = cardIdIndex[id2] local card2 = cardIdIndex[id2]
if card1.metadata.level ~= card2.metadata.level then if (card1.metadata.level ~= card2.metadata.level) then
return card1.metadata.level < card2.metadata.level return card1.metadata.level < card2.metadata.level
elseif card1.data.Nickname ~= card2.data.Nickname then
return card1.data.Nickname < card2.data.Nickname
else
return card1.data.Description < card2.data.Description
end end
if (card1.data.Nickname ~= card2.data.Nickname) then
return card1.data.Nickname < card2.data.Nickname
end
return card1.data.Description < card2.data.Description
end end
function isIndexReady() function isIndexReady()
@ -389,4 +414,7 @@ function isBasicWeakness(cardMetadata)
and cardMetadata.basicWeaknessCount > 0 and cardMetadata.basicWeaknessCount > 0
end end
end) end)
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
require("playercards/AllCardsBag")
end)
return __bundle_require("__root") return __bundle_require("__root")

View File

@ -16,11 +16,6 @@ ContainedObjects:
- !include 'Bag All Player Cards 15bb07/Card Reality Acid 0a1b3a.yaml' - !include 'Bag All Player Cards 15bb07/Card Reality Acid 0a1b3a.yaml'
- !include 'Bag All Player Cards 15bb07/Card Reality Acid Reference 858b0a.yaml' - !include 'Bag All Player Cards 15bb07/Card Reality Acid Reference 858b0a.yaml'
- !include 'Bag All Player Cards 15bb07/Card Ravenous 558b0a.yaml' - !include 'Bag All Player Cards 15bb07/Card Ravenous 558b0a.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Rex Murphy (Parallel) 0a5492.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Rex Murphy (Parallel Back) 0a5493.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Rex Murphy (Parallel Front) 0a5494.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Search for the Truth 4156dd.yaml'
- !include 'Bag All Player Cards 15bb07/Card Rex''s Curse 033a36.yaml'
- !include 'Bag All Player Cards 15bb07/Card Charlie Kane 4deeff.yaml' - !include 'Bag All Player Cards 15bb07/Card Charlie Kane 4deeff.yaml'
- !include 'Bag All Player Cards 15bb07/Card Finn Edwards dd40c0.yaml' - !include 'Bag All Player Cards 15bb07/Card Finn Edwards dd40c0.yaml'
- !include 'Bag All Player Cards 15bb07/Card Monterey Jack 46b145.yaml' - !include 'Bag All Player Cards 15bb07/Card Monterey Jack 46b145.yaml'
@ -30,47 +25,47 @@ ContainedObjects:
46b147.yaml' 46b147.yaml'
- !include 'Bag All Player Cards 15bb07/Card If it bleeds... acf2b0.yaml' - !include 'Bag All Player Cards 15bb07/Card If it bleeds... acf2b0.yaml'
- !include 'Bag All Player Cards 15bb07/Card Beat Cop (2) 7001be.yaml' - !include 'Bag All Player Cards 15bb07/Card Beat Cop (2) 7001be.yaml'
- !include 'Bag All Player Cards 15bb07/Card Book of Living Myths c5fb1f.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Book of Living Myths c5fb1f.yaml'
- !include 'Bag All Player Cards 15bb07/Card Weeping Yurei 541bd9.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Weeping Yurei 541bd9.yaml'
- !include "Bag All Player Cards 15bb07/CardCustom K\u014Dhaku Narukami cea427.yaml" - !include "Bag All Player Cards 15bb07/CardCustom K\u014Dhaku Narukami cea427.yaml"
- !include "Bag All Player Cards 15bb07/Card K\u014Dhaku Narukami 54eaa7.yaml" - !include "Bag All Player Cards 15bb07/CardCustom K\u014Dhaku Narukami 54eaa7.yaml"
- !include 'Bag All Player Cards 15bb07/Card Ad Hoc c9fb2f.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Ad Hoc c9fb2f.yaml'
- !include 'Bag All Player Cards 15bb07/Card Hasty Repairs 0821d5.yaml' - !include 'Bag All Player Cards 15bb07/Card Hasty Repairs 0821d5.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Wilson Richards ceb426.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Wilson Richards ceb426.yaml'
- !include 'Bag All Player Cards 15bb07/Card Wilson Richards 55eab5.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Wilson Richards 55eab5.yaml'
- !include 'Bag All Player Cards 15bb07/Card Ancestral Token c1fb1f.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Ancestral Token c1fb1f.yaml'
- !include 'Bag All Player Cards 15bb07/Card Aetheric Current (Yoth) 84ad64.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Aetheric Current (Yoth) 84ad64.yaml'
- !include 'Bag All Player Cards 15bb07/Card Aetheric Current (Yuggoth) 84ad65.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Aetheric Current (Yuggoth) 84ad65.yaml'
- !include 'Bag All Player Cards 15bb07/Card Failed Experiment acd281.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Failed Experiment acd281.yaml'
- !include 'Bag All Player Cards 15bb07/Card Flux Stabilizer 55990a.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Flux Stabilizer 55990a.yaml'
- !include 'Bag All Player Cards 15bb07/Card Kate Winthrop ce2322.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Kate Winthrop ce2322.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Kate Winthrop ce2323.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Kate Winthrop ce2323.yaml'
- !include 'Bag All Player Cards 15bb07/Card Hatchet (1) 2ea0d3.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Hatchet (1) 2ea0d3.yaml'
- !include 'Bag All Player Cards 15bb07/Card Token of Faith (3) 2ea0d1.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Token of Faith (3) 2ea0d1.yaml'
- !include 'Bag All Player Cards 15bb07/Card Transmogrify 9965dd.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Transmogrify 9965dd.yaml'
- !include 'Bag All Player Cards 15bb07/Card Absolution aef183.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Absolution aef183.yaml'
- !include 'Bag All Player Cards 15bb07/Card Confound (3) 9965de.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Confound (3) 9965de.yaml'
- !include 'Bag All Player Cards 15bb07/Card Strong-Armed (1) 294d6.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Strong-Armed (1) 294d6.yaml'
- !include 'Bag All Player Cards 15bb07/Card Survival Technique (2) 2ea0d4.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Survival Technique (2) 2ea0d4.yaml'
- !include 'Bag All Player Cards 15bb07/Card Scrimshaw Charm c1fb2e.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Scrimshaw Charm c1fb2e.yaml'
- !include 'Bag All Player Cards 15bb07/Card Vamp (3) add233.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Vamp (3) add233.yaml'
- !include 'Bag All Player Cards 15bb07/Card Well-Dressed c6ac33.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Well-Dressed c6ac33.yaml'
- !include 'Bag All Player Cards 15bb07/Card Fine Tuning (1) 103fbd.yaml' - !include 'Bag All Player Cards 15bb07/Card Fine Tuning (1) 103fbd.yaml'
- !include 'Bag All Player Cards 15bb07/Card Prismatic Spectacles (2) 3adcf5.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Prismatic Spectacles (2) 3adcf5.yaml'
- !include 'Bag All Player Cards 15bb07/Card Drain Essence 9965aa.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Drain Essence 9965aa.yaml'
- !include 'Bag All Player Cards 15bb07/Card Fake Credentials acd38d.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Fake Credentials acd38d.yaml'
- !include 'Bag All Player Cards 15bb07/Card Cat Mask 847ed6.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Cat Mask 847ed6.yaml'
- !include 'Bag All Player Cards 15bb07/Card Hard Times 876557.yaml' - !include 'Bag All Player Cards 15bb07/Card Hard Times 876557.yaml'
- !include 'Bag All Player Cards 15bb07/Card Pete''s Guitar 876557.yaml' - !include 'Bag All Player Cards 15bb07/Card Pete''s Guitar 876557.yaml'
- !include 'Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel Front) 5294c3.yaml' - !include 'Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel Front) 5294c3.yaml'
- !include 'Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel Back) 5294c3.yaml' - !include 'Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel Back) 5294c3.yaml'
- !include 'Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel) 5294c3.yaml' - !include 'Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel) 5294c3.yaml'
- !include 'Bag All Player Cards 15bb07/Card Eldritch Tongue e8765a.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Eldritch Tongue e8765a.yaml'
- !include 'Bag All Player Cards 15bb07/Card Tinker 102fbd.yaml' - !include 'Bag All Player Cards 15bb07/Card Tinker 102fbd.yaml'
- !include 'Bag All Player Cards 15bb07/Card Hand-Eye Coordination (1) 102fcd.yaml' - !include 'Bag All Player Cards 15bb07/Card Hand-Eye Coordination (1) 102fcd.yaml'
- !include 'Bag All Player Cards 15bb07/Card False Surrender adf28e.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom False Surrender adf28e.yaml'
- !include 'Bag All Player Cards 15bb07/Card Purified 294d6a.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Purified 294d6a.yaml'
- !include 'Bag All Player Cards 15bb07/Card The Key of Solomon (4) ae54c6.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom The Key of Solomon (4) ae54c6.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom The Necronomicon 5b2e10.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom The Necronomicon 5b2e10.yaml'
- !include 'Bag All Player Cards 15bb07/Card Roland''s .38 Special 4edb91.yaml' - !include 'Bag All Player Cards 15bb07/Card Roland''s .38 Special 4edb91.yaml'
- !include 'Bag All Player Cards 15bb07/Card Stubborn Detective 4ea68b.yaml' - !include 'Bag All Player Cards 15bb07/Card Stubborn Detective 4ea68b.yaml'
@ -1510,11 +1505,6 @@ ContainedObjects:
- !include 'Bag All Player Cards 15bb07/Card Amina Zidane 458edc.yaml' - !include 'Bag All Player Cards 15bb07/Card Amina Zidane 458edc.yaml'
- !include 'Bag All Player Cards 15bb07/Card Amina Zidane 4c2a3d.yaml' - !include 'Bag All Player Cards 15bb07/Card Amina Zidane 4c2a3d.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom The Raven Quill Upgrade Sheet 23b96a.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom The Raven Quill Upgrade Sheet 23b96a.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Hypnotic Gaze (2) (Taboo) e2bc50.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Old Keyring (3) (Taboo) e7d989.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Pay Day (1) (Taboo) 9f0b35.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Scavenging (2) (Taboo) ff4aeb.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Scavenging (Taboo) 1b76c8.yaml'
- !include 'Bag All Player Cards 15bb07/Card Deck of Possibilities fefdfa.yaml' - !include 'Bag All Player Cards 15bb07/Card Deck of Possibilities fefdfa.yaml'
- !include "Bag All Player Cards 15bb07/Card Isamara Ordo\xF1ez 860cd7.yaml" - !include "Bag All Player Cards 15bb07/Card Isamara Ordo\xF1ez 860cd7.yaml"
- !include 'Bag All Player Cards 15bb07/Card Jenny Barnes 48b174.yaml' - !include 'Bag All Player Cards 15bb07/Card Jenny Barnes 48b174.yaml'
@ -1548,7 +1538,7 @@ ContainedObjects:
- !include 'Bag All Player Cards 15bb07/Card Mandy Thompson (Taboo) 4f3637.yaml' - !include 'Bag All Player Cards 15bb07/Card Mandy Thompson (Taboo) 4f3637.yaml'
- !include 'Bag All Player Cards 15bb07/Card Trish Scarborough (Taboo) 2ce76d.yaml' - !include 'Bag All Player Cards 15bb07/Card Trish Scarborough (Taboo) 2ce76d.yaml'
- !include 'Bag All Player Cards 15bb07/Card Lola Hayes (Taboo) 52956d.yaml' - !include 'Bag All Player Cards 15bb07/Card Lola Hayes (Taboo) 52956d.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Rex Murphy (Taboo) 0a5491.yaml' - !include 'Bag All Player Cards 15bb07/Card Rex Murphy (Taboo) 0a5491.yaml'
- !include 'Bag All Player Cards 15bb07/Card Runic Axe Upgrade Sheet (Taboo) 4d729b.yaml' - !include 'Bag All Player Cards 15bb07/Card Runic Axe Upgrade Sheet (Taboo) 4d729b.yaml'
- !include 'Bag All Player Cards 15bb07/Card Power Word Upgrade Sheet (Taboo) ebce85.yaml' - !include 'Bag All Player Cards 15bb07/Card Power Word Upgrade Sheet (Taboo) ebce85.yaml'
- !include 'Bag All Player Cards 15bb07/Card Prophesiae Profana (5) (Taboo) 957c32.yaml' - !include 'Bag All Player Cards 15bb07/Card Prophesiae Profana (5) (Taboo) 957c32.yaml'
@ -1627,77 +1617,77 @@ ContainedObjects:
- !include 'Bag All Player Cards 15bb07/Card Final Rhapsody 561775.yaml' - !include 'Bag All Player Cards 15bb07/Card Final Rhapsody 561775.yaml'
- !include 'Bag All Player Cards 15bb07/Card Jim Culver (Parallel Back) aba863.yaml' - !include 'Bag All Player Cards 15bb07/Card Jim Culver (Parallel Back) aba863.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom The Beyond 37ab47.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom The Beyond 37ab47.yaml'
- !include 'Bag All Player Cards 15bb07/Card Devil (2) 2a0ba5.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Devil (2) 2a0ba5.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi cea425.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi cea425.yaml'
- !include 'Bag All Player Cards 15bb07/Card Alessandra Zorzi 54eaa5.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi 54eaa5.yaml'
- !include 'Bag All Player Cards 15bb07/Card Zamacona 541ba9.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Zamacona 541ba9.yaml'
- !include 'Bag All Player Cards 15bb07/Card Wicked Athame c9fb1f.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Wicked Athame c9fb1f.yaml'
- !include 'Bag All Player Cards 15bb07/Card Wolf Mask 975d89.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Wolf Mask 975d89.yaml'
- !include 'Bag All Player Cards 15bb07/Card Beguile 019526.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Beguile 019526.yaml'
- !include 'Bag All Player Cards 15bb07/Card Ofuda 860c1e.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Ofuda 860c1e.yaml'
- !include 'Bag All Player Cards 15bb07/Card Providential (2) 2cf42a.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Providential (2) 2cf42a.yaml'
- !include 'Bag All Player Cards 15bb07/Card Vamp add232.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Vamp add232.yaml'
- !include 'Bag All Player Cards 15bb07/Card I''ll Pay You Back! 40e1ca.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom I''ll Pay You Back! 40e1ca.yaml'
- !include 'Bag All Player Cards 15bb07/Card Occult Reliquary (3) acd0c2.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Occult Reliquary (3) acd0c2.yaml'
- !include 'Bag All Player Cards 15bb07/Card Grift df75d7.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Grift df75d7.yaml'
- !include 'Bag All Player Cards 15bb07/Card Guided by Faith aef282.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Guided by Faith aef282.yaml'
- !include 'Bag All Player Cards 15bb07/CardCustom Hank Samson 3764cc.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Hank Samson 3764cc.yaml'
- !include 'Bag All Player Cards 15bb07/Card Hank Samson 3764cd.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Hank Samson 3764cd.yaml'
- !include 'Bag All Player Cards 15bb07/Card Hank Samson (Assistant) 3764ce.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Hank Samson (Assistant) 3764ce.yaml'
- !include 'Bag All Player Cards 15bb07/Card Hank Samson (Warden) 3764cf.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Hank Samson (Warden) 3764cf.yaml'
- !include 'Bag All Player Cards 15bb07/Card Hold Up aef182.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Hold Up aef182.yaml'
- !include 'Bag All Player Cards 15bb07/Card Pelt Shipment aa11bc.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Pelt Shipment aa11bc.yaml'
- !include 'Bag All Player Cards 15bb07/Card Stir the Pot (5) add252.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Stir the Pot (5) add252.yaml'
- !include 'Bag All Player Cards 15bb07/Card Snitch (2) add242.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Snitch (2) add242.yaml'
- !include 'Bag All Player Cards 15bb07/Card Where''s Pa 9aba43.yaml' - !include 'Bag All Player Cards 15bb07/Card Where''s Pa 9aba43.yaml'
- !include 'Bag All Player Cards 15bb07/Card Persistence (1) 2cf51.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Persistence (1) 2cf51.yaml'
- !include 'Bag All Player Cards 15bb07/Card Stouthearted 265ad2.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Stouthearted 265ad2.yaml'
- !include 'Bag All Player Cards 15bb07/Card Control Variable 133868.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Control Variable 133868.yaml'
- !include 'Bag All Player Cards 15bb07/Card Blackmail File de456d.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Blackmail File de456d.yaml'
- !include 'Bag All Player Cards 15bb07/Card Speak to the Dead c763aa.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Speak to the Dead c763aa.yaml'
- !include 'Bag All Player Cards 15bb07/Card Accursed e91c5e.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Accursed e91c5e.yaml'
- !include 'Bag All Player Cards 15bb07/Card Throw the Book at Them! d617ab.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Throw the Book at Them! d617ab.yaml'
- !include 'Bag All Player Cards 15bb07/Card Fox Mask 4144cd.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Fox Mask 4144cd.yaml'
- !include 'Bag All Player Cards 15bb07/Card Mouse Mask 32ad21.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Mouse Mask 32ad21.yaml'
- !include 'Bag All Player Cards 15bb07/Card Task Force a5c06a.yaml' - !include 'Bag All Player Cards 15bb07/Card Task Force (0) a5c06a.yaml'
- !include 'Bag All Player Cards 15bb07/Card Microscope (4) fbd296.yaml' - !include 'Bag All Player Cards 15bb07/Card Microscope (4) fbd296.yaml'
- !include 'Bag All Player Cards 15bb07/Card Back Injury f6c482.yaml' - !include 'Bag All Player Cards 15bb07/Card Back Injury f6c482.yaml'
- !include 'Bag All Player Cards 15bb07/Card Lightfooted fe1fb6.yaml' - !include 'Bag All Player Cards 15bb07/Card Lightfooted (0) fe1fb6.yaml'
- !include 'Bag All Player Cards 15bb07/Card Bewitching (3) db335c.yaml' - !include 'Bag All Player Cards 15bb07/Card Bewitching (3) db335c.yaml'
- !include 'Bag All Player Cards 15bb07/Card Flurry of Blows (5) 9e7bc8.yaml' - !include 'Bag All Player Cards 15bb07/Card Flurry of Blows (5) 9e7bc8.yaml'
- !include 'Bag All Player Cards 15bb07/Card British Bull Dog (2) 7b7050.yaml' - !include 'Bag All Player Cards 15bb07/Card British Bull Dog (2) 7b7050.yaml'
- !include 'Bag All Player Cards 15bb07/Card Bianca Die Katz 897a94.yaml' - !include 'Bag All Player Cards 15bb07/Card Bianca Die Katz (0) 897a94.yaml'
- !include 'Bag All Player Cards 15bb07/Card Dirty Deeds (3) aa2d6a.yaml' - !include 'Bag All Player Cards 15bb07/Card Dirty Deeds (3) aa2d6a.yaml'
- !include 'Bag All Player Cards 15bb07/Card Esoteric Method (1) 9250e1.yaml' - !include 'Bag All Player Cards 15bb07/Card Esoteric Method (1) 9250e1.yaml'
- !include 'Bag All Player Cards 15bb07/Card Katana f5beb5.yaml' - !include 'Bag All Player Cards 15bb07/Card Katana (0) f5beb5.yaml'
- !include 'Bag All Player Cards 15bb07/Card Ethereal Weaving (3) 697efd.yaml' - !include 'Bag All Player Cards 15bb07/Card Ethereal Weaving (3) 697efd.yaml'
- !include 'Bag All Player Cards 15bb07/Card Putrescent Rot 2d1e60.yaml' - !include 'Bag All Player Cards 15bb07/Card Putrescent Rot 2d1e60.yaml'
- !include 'Bag All Player Cards 15bb07/Card Ravenous Myconid (4) df93ca.yaml' - !include 'Bag All Player Cards 15bb07/Card Ravenous Myconid (4) df93ca.yaml'
- !include 'Bag All Player Cards 15bb07/Card Second Wind (2) c3c979.yaml' - !include 'Bag All Player Cards 15bb07/Card Second Wind (2) c3c979.yaml'
- !include 'Bag All Player Cards 15bb07/Card Fire Axe (2) 326ec3.yaml' - !include 'Bag All Player Cards 15bb07/Card Fire Axe (2) 326ec3.yaml'
- !include 'Bag All Player Cards 15bb07/Card Stir the Pot c25479.yaml' - !include 'Bag All Player Cards 15bb07/Card Stir the Pot (0) c25479.yaml'
- !include 'Bag All Player Cards 15bb07/Card Keeper of the Key 014086.yaml' - !include 'Bag All Player Cards 15bb07/Card Keeper of the Key 014086.yaml'
- !include 'Bag All Player Cards 15bb07/Card Bide Your Time 24d3b3.yaml' - !include 'Bag All Player Cards 15bb07/Card Bide Your Time (0) 24d3b3.yaml'
- !include 'Bag All Player Cards 15bb07/Card Thorough Inquiry c6b644.yaml' - !include 'Bag All Player Cards 15bb07/Card Thorough Inquiry (0) c6b644.yaml'
- !include 'Bag All Player Cards 15bb07/Card Steady-Handed (1) 9181f7.yaml' - !include 'Bag All Player Cards 15bb07/Card Steady-Handed (1) 9181f7.yaml'
- !include 'Bag All Player Cards 15bb07/Card Dawn Star (1) 8b15d7.yaml' - !include 'Bag All Player Cards 15bb07/Card Dawn Star (1) 8b15d7.yaml'
- !include 'Bag All Player Cards 15bb07/Card Seal of the Elders (5) d2b649.yaml' - !include 'Bag All Player Cards 15bb07/Card Seal of the Elders (5) d2b649.yaml'
- !include 'Bag All Player Cards 15bb07/Card Keep Faith (2) 73e4ee.yaml' - !include 'Bag All Player Cards 15bb07/Card Keep Faith (2) 73e4ee.yaml'
- !include 'Bag All Player Cards 15bb07/Card Mariner''s Compass (2) 596053.yaml' - !include 'Bag All Player Cards 15bb07/Card Mariner''s Compass (2) 596053.yaml'
- !include 'Bag All Player Cards 15bb07/Card Bank Job c4dfa2.yaml' - !include 'Bag All Player Cards 15bb07/Card Bank Job (0) c4dfa2.yaml'
- !include 'Bag All Player Cards 15bb07/Card Abyssal Rot bbeac6.yaml' - !include 'Bag All Player Cards 15bb07/Card Abyssal Rot bbeac6.yaml'
- !include 'Bag All Player Cards 15bb07/Card Maimed Hand cb14d3.yaml' - !include 'Bag All Player Cards 15bb07/Card Maimed Hand cb14d3.yaml'
- !include 'Bag All Player Cards 15bb07/Card Testing Sprint a4846b.yaml' - !include 'Bag All Player Cards 15bb07/Card Testing Sprint (0) a4846b.yaml'
- !include 'Bag All Player Cards 15bb07/Card Blade of Yoth c61a83.yaml' - !include 'Bag All Player Cards 15bb07/Card Blade of Yoth c61a83.yaml'
- !include 'Bag All Player Cards 15bb07/Card Call the Beyond (2) 0dd070.yaml' - !include 'Bag All Player Cards 15bb07/Card Call the Beyond (2) 0dd070.yaml'
- !include 'Bag All Player Cards 15bb07/Card Gabriel Carillo (1) 7e1088.yaml' - !include 'Bag All Player Cards 15bb07/Card Gabriel Carillo (1) 7e1088.yaml'
- !include 'Bag All Player Cards 15bb07/Card Diabolical Luck 1fea59.yaml' - !include 'Bag All Player Cards 15bb07/Card Diabolical Luck (0) 1fea59.yaml'
- !include 'Bag All Player Cards 15bb07/Card Cleaning Kit d07668.yaml' - !include 'Bag All Player Cards 15bb07/Card Cleaning Kit (0) d07668.yaml'
- !include 'Bag All Player Cards 15bb07/Card Evanescent Ascension 9e763b.yaml' - !include 'Bag All Player Cards 15bb07/Card Evanescent Ascension 9e763b.yaml'
- !include 'Bag All Player Cards 15bb07/Card Matchbox b533db.yaml' - !include 'Bag All Player Cards 15bb07/Card Matchbox (0) b533db.yaml'
- !include 'Bag All Player Cards 15bb07/Card British Bull Dog 9b76a0.yaml' - !include 'Bag All Player Cards 15bb07/Card British Bull Dog (0) 9b76a0.yaml'
- !include 'Bag All Player Cards 15bb07/Card Twilight Diadem a2f8f8.yaml' - !include 'Bag All Player Cards 15bb07/Card Twilight Diadem a2f8f8.yaml'
- !include 'Bag All Player Cards 15bb07/Card Rod of Carnamagos 66ec64.yaml' - !include 'Bag All Player Cards 15bb07/Card Rod of Carnamagos (0) 66ec64.yaml'
- !include 'Bag All Player Cards 15bb07/Card Spectral Razor (2) b38ded.yaml' - !include 'Bag All Player Cards 15bb07/Card Spectral Razor (2) b38ded.yaml'
- !include 'Bag All Player Cards 15bb07/Card Ethereal Form (2) e58c7b.yaml' - !include 'Bag All Player Cards 15bb07/Card Ethereal Form (2) e58c7b.yaml'
- !include 'Bag All Player Cards 15bb07/Card Cleaning Kit (3) 94c3e1.yaml' - !include 'Bag All Player Cards 15bb07/Card Cleaning Kit (3) 94c3e1.yaml'
@ -1706,7 +1696,7 @@ ContainedObjects:
- !include 'Bag All Player Cards 15bb07/Card Fake Credentials (4) 7ebb67.yaml' - !include 'Bag All Player Cards 15bb07/Card Fake Credentials (4) 7ebb67.yaml'
- !include 'Bag All Player Cards 15bb07/Card Hunting Jacket (2) 5355fa.yaml' - !include 'Bag All Player Cards 15bb07/Card Hunting Jacket (2) 5355fa.yaml'
- !include 'Bag All Player Cards 15bb07/Card Dark Horse (5) d00e4d.yaml' - !include 'Bag All Player Cards 15bb07/Card Dark Horse (5) d00e4d.yaml'
- !include 'Bag All Player Cards 15bb07/Card Antediluvian Hymn ba4746.yaml' - !include 'Bag All Player Cards 15bb07/Card Antediluvian Hymn (0) ba4746.yaml'
- !include 'Bag All Player Cards 15bb07/Card Aember Rot 3e6219.yaml' - !include 'Bag All Player Cards 15bb07/Card Aember Rot 3e6219.yaml'
- !include 'Bag All Player Cards 15bb07/Card The Silver Moth 2c6dc1.yaml' - !include 'Bag All Player Cards 15bb07/Card The Silver Moth 2c6dc1.yaml'
- !include 'Bag All Player Cards 15bb07/Card Scarlet Rot fe476c.yaml' - !include 'Bag All Player Cards 15bb07/Card Scarlet Rot fe476c.yaml'
@ -1721,16 +1711,7 @@ ContainedObjects:
- !include 'Bag All Player Cards 15bb07/Card Bianca Die Katz 992ccd.yaml' - !include 'Bag All Player Cards 15bb07/Card Bianca Die Katz 992ccd.yaml'
- !include 'Bag All Player Cards 15bb07/Card Servant of Brass 06bc7e.yaml' - !include 'Bag All Player Cards 15bb07/Card Servant of Brass 06bc7e.yaml'
- !include 'Bag All Player Cards 15bb07/Card Read the Signs (2) 5ce4d4.yaml' - !include 'Bag All Player Cards 15bb07/Card Read the Signs (2) 5ce4d4.yaml'
- !include 'Bag All Player Cards 15bb07/Card Elaborate Distraction d1422e.yaml' - !include 'Bag All Player Cards 15bb07/Card Elaborate Distraction (0) d1422e.yaml'
- !include 'Bag All Player Cards 15bb07/Card Dr. Rosa Marquez 62d5a6.yaml'
- !include 'Bag All Player Cards 15bb07/Card The Pearl Diary 34a7b5.yaml'
- !include 'Bag All Player Cards 15bb07/Card Ajax f8a7c6.yaml'
- !include 'Bag All Player Cards 15bb07/Card Corn Husk Doll 3602f5.yaml'
- !include 'Bag All Player Cards 15bb07/Card The Hemlock Curse 0d0a2c.yaml'
- !include 'Bag All Player Cards 15bb07/Card Worry Rock 5e5dc6.yaml'
- !include 'Bag All Player Cards 15bb07/Card Little Sylvie 153a42.yaml'
- !include 'Bag All Player Cards 15bb07/Card Prismatic Shard 27fe24.yaml'
- !include 'Bag All Player Cards 15bb07/Card Helen Peters 33bfa1.yaml'
Description: '' Description: ''
DragSelectable: true DragSelectable: true
GMNotes: '' GMNotes: ''

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917408 CardID: 94732
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917409 CardID: 94733
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -1,56 +0,0 @@
AltLookAngle:
x: 0
y: 0
z: 0
Autoraise: true
CardID: 537606
ColorDiffuse:
b: 0.71324
g: 0.71324
r: 0.71324
CustomDeck:
'5376':
BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2453969772006056023/3B1E7D4CD84213ED69594B15606531799383F4AA/
NumHeight: 3
NumWidth: 9
Type: 0
UniqueBack: false
Description: Faithful Steed
DragSelectable: true
GMNotes: "{\n \"id\": \"10642\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n
\ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Ally. Creature.\",\n
\ \"cycle\": \"The Feast of Hemlock Vale\"\n}"
GUID: f8a7c6
Grid: true
GridProjection: false
Hands: true
HideWhenFaceDown: true
IgnoreFoW: false
LayoutGroupSortIndex: 0
Locked: false
LuaScript: ''
LuaScriptState: ''
MeasureMovement: false
Name: Card
Nickname: Ajax
SidewaysCard: false
Snap: true
Sticky: true
Tags:
- Asset
- PlayerCard
Tooltip: true
Transform:
posX: 31.17
posY: 3.67
posZ: 11.69
rotX: 0
rotY: 270
rotZ: 0
scaleX: 1
scaleY: 1
scaleZ: 1
Value: 0
XmlUI: ''

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917415 CardID: 94737
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0
@ -35,7 +35,7 @@ LuaScript: ''
LuaScriptState: '' LuaScriptState: ''
MeasureMovement: false MeasureMovement: false
Name: Card Name: Card
Nickname: Antediluvian Hymn Nickname: Antediluvian Hymn (0)
SidewaysCard: false SidewaysCard: false
Snap: true Snap: true
Sticky: true Sticky: true

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378953 CardID: 378962
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378959 CardID: 378917
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0
@ -21,8 +21,7 @@ Description: Basic Weakness
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"08130\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n GMNotes: "{\n \"id\": \"08130\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n
\ \"traits\": \"Injury.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n \ \"traits\": \"Injury.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n
\ \"uses\": [\n {\n \"count\": 1,\n \"type\": \"Damage\",\n \"token\": \ \"cycle\": \"Edge of the Earth\"\n}"
\"damage\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}"
GUID: 8f1420 GUID: 8f1420
Grid: true Grid: true
GridProjection: false GridProjection: false

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917458 CardID: 94760
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917361 CardID: 94723
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0
@ -35,7 +35,7 @@ LuaScript: ''
LuaScriptState: '' LuaScriptState: ''
MeasureMovement: false MeasureMovement: false
Name: Card Name: Card
Nickname: Bank Job Nickname: Bank Job (0)
SidewaysCard: false SidewaysCard: false
Snap: true Snap: true
Sticky: true Sticky: true

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917401 CardID: 94728
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,28 +3,28 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917354 CardID: 94720
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0
UniqueBack: false UniqueBack: false
Description: Singing Your Song Description: Singing Your Songs
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"10062\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n GMNotes: "{\n \"id\": \"10062\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n
\ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Ally. \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Ally.
Criminal. Socialite.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"maxCount\": Criminal. Socialite.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\":
1,\n \"id\": \"10063\"\n }\n ],\n \"agilityIcons\": 1,\n \"uses\": [\n \"10063\"\n }\n ],\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\":
\ {\n \"count\": 10,\n \"type\": \"Resource\",\n \"token\": \"resource\"\n 10,\n \"type\": \"Resource\",\n \"token\": \"resource\"\n }\n ],\n
\ }\n ],\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" \ \"cycle\": \"The Feast of Hemlock Vale\"\n}"
GUID: 897a94 GUID: 897a94
Grid: true Grid: true
GridProjection: false GridProjection: false
@ -37,7 +37,7 @@ LuaScript: ''
LuaScriptState: '' LuaScriptState: ''
MeasureMovement: false MeasureMovement: false
Name: Card Name: Card
Nickname: Bianca "Die Katz" Nickname: Bianca "Die Katz" (0)
SidewaysCard: false SidewaysCard: false
Snap: true Snap: true
Sticky: true Sticky: true

View File

@ -3,21 +3,21 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917355 CardID: 94721
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0
UniqueBack: false UniqueBack: false
Description: Enemy Description: ''
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"10063\",\n \"type\": \"Enemy\",\n \"traits\": \"Humanoid. GMNotes: "{\n \"id\": \"10063\",\n \"type\": \"Enemy\",\n \"traits\": \"Humanoid.
Criminal. Socialite.\",\n \"victory\": 0,\n \"cycle\": \"The Feast of Hemlock Criminal. Socialite.\",\n \"victory\": 0,\n \"cycle\": \"The Feast of Hemlock

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917451 CardID: 94755
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0
@ -34,7 +34,7 @@ LuaScript: ''
LuaScriptState: '' LuaScriptState: ''
MeasureMovement: false MeasureMovement: false
Name: Card Name: Card
Nickname: Bide Your Time Nickname: Bide Your Time (0)
SidewaysCard: false SidewaysCard: false
Snap: true Snap: true
Sticky: true Sticky: true

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917328 CardID: 94707
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917326 CardID: 94705
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378938 CardID: 378947
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378940 CardID: 378949
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -11,8 +11,8 @@ ColorDiffuse:
CustomDeck: CustomDeck:
'3795': '3795':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578166/C21CC0E4ADE06C11419F36BAEDED0BDBFF8DE5E3/ BackURL: http://cloud-3.steamusercontent.com/ugc/1625226898126523297/2C981A8D79F76E3533ADD355F8AF406EA72B5162/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578395/F97B770FB90EA18B46F58614CCE0016406E3E777/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126522542/E29FEBE196344F3DEE457BE957E9AF18310C6F39/
NumHeight: 2 NumHeight: 2
NumWidth: 5 NumWidth: 5
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378919 CardID: 378928
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378921 CardID: 378930
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917357 CardID: 94722
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0
@ -36,7 +36,7 @@ LuaScript: ''
LuaScriptState: '' LuaScriptState: ''
MeasureMovement: false MeasureMovement: false
Name: Card Name: Card
Nickname: British Bull Dog Nickname: British Bull Dog (0)
SidewaysCard: false SidewaysCard: false
Snap: true Snap: true
Sticky: true Sticky: true

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917369 CardID: 94727
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917455 CardID: 94757
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0
@ -21,10 +21,9 @@ Description: Crown of Dying Light
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"10133\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n GMNotes: "{\n \"id\": \"10133\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n
\ \"cost\": 1,\n \"level\": 5,\n \"traits\": \"Item. Charm. Mask.\",\n \"bonded\": \ \"cost\": 1,\n \"level\": 5,\n \"traits\": \"Item. Charm. Mask.\",\n \"bonded\":
[\n {\n \"count\": 1,\n \"maxCount\": 1,\n \"id\": \"10134\"\n [\n {\n \"count\": 1,\n \"id\": \"10134\"\n }\n ],\n \"wildIcons\":
\ }\n ],\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": 1,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": \"Offering\",\n \"token\":
\"Offering\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Feast \"resource\"\n }\n ],\n \"cycle\": \"The Feast of Hemlock Vale\"\n}"
of Hemlock Vale\"\n}"
GUID: b6d35d GUID: b6d35d
Grid: true Grid: true
GridProjection: false GridProjection: false

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378951 CardID: 378960
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 379006 CardID: 379007
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 379005 CardID: 379006
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378958 CardID: 378916
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917421 CardID: 94740
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,18 +3,18 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917332 CardID: 12102
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '121':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/
NumHeight: 7 NumHeight: 2
NumWidth: 10 NumWidth: 6
Type: 0 Type: 0
UniqueBack: false UniqueBack: false
Description: '' Description: ''

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917312 CardID: 94700
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0
@ -36,7 +36,7 @@ LuaScript: ''
LuaScriptState: '' LuaScriptState: ''
MeasureMovement: false MeasureMovement: false
Name: Card Name: Card
Nickname: Cleaning Kit Nickname: Cleaning Kit (0)
SidewaysCard: false SidewaysCard: false
Snap: true Snap: true
Sticky: true Sticky: true

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917325 CardID: 94704
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -1,57 +0,0 @@
AltLookAngle:
x: 0
y: 0
z: 0
Autoraise: true
CardID: 536430
ColorDiffuse:
b: 0.71324
g: 0.71324
r: 0.71324
CustomDeck:
'5364':
BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2453969772006048567/4C173CF8E2E2F69C7374D65AAA2D842C048FC792/
NumHeight: 5
NumWidth: 8
Type: 0
UniqueBack: false
Description: Symbol of Innocence
DragSelectable: true
GMNotes: "{\n \"id\": \"10714\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n
\ \"class\": \"Neutral\",\n \"cost\": 1,\n \"willpowerIcons\": 1,\n \"agilityIcons\":
1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Wish\",\n \"token\":
\"resource\"\n }\n ],\n \"cycle\": \"The Feast of Hemlock Vale\"\n}"
GUID: 3602f5
Grid: true
GridProjection: false
Hands: true
HideWhenFaceDown: true
IgnoreFoW: false
LayoutGroupSortIndex: 0
Locked: false
LuaScript: ''
LuaScriptState: ''
MeasureMovement: false
Name: Card
Nickname: Corn Husk Doll
SidewaysCard: false
Snap: true
Sticky: true
Tags:
- Asset
- PlayerCard
Tooltip: true
Transform:
posX: 34.33
posY: 3.67
posZ: 9.4
rotX: 0
rotY: 270
rotZ: 0
scaleX: 1
scaleY: 1
scaleZ: 1
Value: 0
XmlUI: ''

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378952 CardID: 378961
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -21,9 +21,8 @@ Description: ''
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"06024\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n GMNotes: "{\n \"id\": \"06024\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n
\ \"class\": \"Rogue\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. \ \"class\": \"Rogue\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item.
Relic.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"maxCount\": 2,\n Relic.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\": \"06025\"\n
\ \"id\": \"06025\"\n }\n ],\n \"willpowerIcons\": 1,\n \"cycle\": \"The \ }\n ],\n \"willpowerIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}"
Dream-Eaters\"\n}"
GUID: 6692de GUID: 6692de
Grid: true Grid: true
GridProjection: false GridProjection: false

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378922 CardID: 378931
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -19,9 +19,9 @@ CustomDeck:
UniqueBack: false UniqueBack: false
Description: Basic Weakness Description: Basic Weakness
DragSelectable: true DragSelectable: true
GMNotes: "{\r\n \"id\": \"54014\",\r\n \"type\": \"Treachery\",\r\n \"class\": GMNotes: "{\n \"id\": \"54014\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n
\"Neutral\",\r\n \"traits\": \"Curse. Omen.\",\r\n \"permanent\": true,\r\n \"weakness\": \ \"traits\": \"Curse. Omen.\",\n \"permanent\": true,\n \"weakness\": true,\n
true,\r\n \"basicWeaknessCount\": 1,\r\n \"cycle\": \"Return to the Circle Undone\"\r\n}\r" \ \"basicWeaknessCount\": 1,\n \"cycle\": \"Return to the Circle Undone\"\n}"
GUID: bad8cb GUID: bad8cb
Grid: true Grid: true
GridProjection: false GridProjection: false

View File

@ -11,8 +11,8 @@ ColorDiffuse:
CustomDeck: CustomDeck:
'3795': '3795':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578166/C21CC0E4ADE06C11419F36BAEDED0BDBFF8DE5E3/ BackURL: http://cloud-3.steamusercontent.com/ugc/1625226898126523297/2C981A8D79F76E3533ADD355F8AF406EA72B5162/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578395/F97B770FB90EA18B46F58614CCE0016406E3E777/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126522542/E29FEBE196344F3DEE457BE957E9AF18310C6F39/
NumHeight: 2 NumHeight: 2
NumWidth: 5 NumWidth: 5
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917449 CardID: 94754
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0
@ -20,8 +20,8 @@ CustomDeck:
Description: '' Description: ''
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"10127\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n GMNotes: "{\n \"id\": \"10127\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n
\ \"startsInPlay\": true,\n \"level\": 5,\n \"traits\": \"Condition.\",\n \"permanent\": \ \"level\": 5,\n \"traits\": \"Condition.\",\n \"permanent\": true,\n \"cycle\":
true,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" \"The Feast of Hemlock Vale\"\n}"
GUID: d00e4d GUID: d00e4d
Grid: true Grid: true
GridProjection: false GridProjection: false

View File

@ -41,6 +41,80 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (
return require, loaded, register, modules return require, loaded, register, modules
end)(nil) end)(nil)
__bundle_register("util/SearchLib", function(require, _LOADED, __bundle_register, __bundle_modules)
do
local SearchLib = {}
local filterFunctions = {
isActionToken = function(x) return x.getDescription() == "Action Token" end,
isCard = function(x) return x.type == "Card" end,
isDeck = function(x) return x.type == "Deck" end,
isCardOrDeck = function(x) return x.type == "Card" or x.type == "Deck" end,
isClue = function(x) return x.memo == "clueDoom" and x.is_face_down == false end,
isTileOrToken = function(x) return x.type == "Tile" end
}
-- performs the actual search and returns a filtered list of object references
---@param pos tts__Vector Global position
---@param rot? tts__Vector Global rotation
---@param size table Size
---@param filter? string Name of the filter function
---@param direction? table Direction (positive is up)
---@param maxDistance? number Distance for the cast
local function returnSearchResult(pos, rot, size, filter, direction, maxDistance)
local filterFunc
if filter then
filterFunc = filterFunctions[filter]
end
local searchResult = Physics.cast({
origin = pos,
direction = direction or { 0, 1, 0 },
orientation = rot or { 0, 0, 0 },
type = 3,
size = size,
max_distance = maxDistance or 0
})
-- filtering the result
local objList = {}
for _, v in ipairs(searchResult) do
if not filter or filterFunc(v.hit_object) then
table.insert(objList, v.hit_object)
end
end
return objList
end
-- searches the specified area
SearchLib.inArea = function(pos, rot, size, filter)
return returnSearchResult(pos, rot, size, filter)
end
-- searches the area on an object
SearchLib.onObject = function(obj, filter)
pos = obj.getPosition()
size = obj.getBounds().size:setAt("y", 1)
return returnSearchResult(pos, _, size, filter)
end
-- searches the specified position (a single point)
SearchLib.atPosition = function(pos, filter)
size = { 0.1, 2, 0.1 }
return returnSearchResult(pos, _, size, filter)
end
-- searches below the specified position (downwards until y = 0)
SearchLib.belowPosition = function(pos, filter)
direction = { 0, -1, 0 }
maxDistance = pos.y
return returnSearchResult(pos, _, size, filter, direction, maxDistance)
end
return SearchLib
end
end)
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
require("playercards/cards/DarkRitual")
end)
__bundle_register("playercards/CardsThatSealTokens", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("playercards/CardsThatSealTokens", function(require, _LOADED, __bundle_register, __bundle_modules)
--[[ Library for cards that seal tokens --[[ Library for cards that seal tokens
This file is used to add sealing option to cards' context menu. This file is used to add sealing option to cards' context menu.
@ -330,64 +404,82 @@ function resolveSealed()
chaosBagApi.drawChaosToken(mat, true, _, guidToBeResolved) chaosBagApi.drawChaosToken(mat, true, _, guidToBeResolved)
end end
end) end)
__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules)
do do
local BlessCurseManagerApi = {} local TokenArrangerApi = {}
local guidReferenceApi = require("core/GUIDReferenceApi") local guidReferenceApi = require("core/GUIDReferenceApi")
local function getManager() -- local function to call the token arranger, if it is on the table
return guidReferenceApi.getObjectByOwnerAndType("Mythos", "BlessCurseManager") ---@param functionName string Name of the function to cal
---@param argument? table Parameter to pass
local function callIfExistent(functionName, argument)
local tokenArranger = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenArranger")
if tokenArranger ~= nil then
tokenArranger.call(functionName, argument)
end
end end
-- removes all taken tokens and resets the counts -- updates the token modifiers with the provided data
BlessCurseManagerApi.removeTakenTokensAndReset = function() ---@param fullData table Contains the chaos token metadata
local BlessCurseManager = getManager() TokenArrangerApi.onTokenDataChanged = function(fullData)
Wait.time(function() BlessCurseManager.call("removeTakenTokens", "Bless") end, 0.05) callIfExistent("onTokenDataChanged", fullData)
Wait.time(function() BlessCurseManager.call("removeTakenTokens", "Curse") end, 0.10)
Wait.time(function() BlessCurseManager.call("doReset", "White") end, 0.15)
end end
-- updates the internal count (called by cards that seal bless/curse tokens) -- deletes already laid out tokens
---@param type string Type of chaos token ("Bless" or "Curse") TokenArrangerApi.deleteCopiedTokens = function()
---@param guid string GUID of the token callIfExistent("deleteCopiedTokens")
BlessCurseManagerApi.sealedToken = function(type, guid)
getManager().call("sealedToken", { type = type, guid = guid })
end end
-- updates the internal count (called by cards that seal bless/curse tokens) -- updates the laid out tokens
---@param type string Type of chaos token ("Bless" or "Curse") TokenArrangerApi.layout = function()
---@param guid string GUID of the token Wait.time(function() callIfExistent("layout") end, 0.1)
BlessCurseManagerApi.releasedToken = function(type, guid)
getManager().call("releasedToken", { type = type, guid = guid })
end end
-- updates the internal count (called by cards that seal bless/curse tokens) return TokenArrangerApi
---@param type string Type of chaos token ("Bless" or "Curse") end
---@param guid string GUID of the token end)
BlessCurseManagerApi.returnedToken = function(type, guid) __bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules)
getManager().call("returnedToken", { type = type, guid = guid }) do
local GUIDReferenceApi = {}
local function getGuidHandler()
return getObjectFromGUID("123456")
end end
-- broadcasts the current status for bless/curse tokens ---@param owner string Parent object for this search
---@param playerColor string Color of the player to show the broadcast to ---@param type string Type of object to search for
BlessCurseManagerApi.broadcastStatus = function(playerColor) ---@return any: Object reference to the matching object
getManager().call("broadcastStatus", playerColor) GUIDReferenceApi.getObjectByOwnerAndType = function(owner, type)
return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type })
end end
-- removes all bless / curse tokens from the chaos bag and play -- returns all matching objects as a table with references
---@param playerColor string Color of the player to show the broadcast to ---@param type string Type of object to search for
BlessCurseManagerApi.removeAll = function(playerColor) ---@return table: List of object references to matching objects
getManager().call("doRemove", playerColor) GUIDReferenceApi.getObjectsByType = function(type)
return getGuidHandler().call("getObjectsByType", type)
end end
-- adds bless / curse sealing to the hovered card -- returns all matching objects as a table with references
---@param playerColor string Color of the player to show the broadcast to ---@param owner string Parent object for this search
---@param hoveredObject tts__Object Hovered object ---@return table: List of object references to matching objects
BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) GUIDReferenceApi.getObjectsByOwner = function(owner)
getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) return getGuidHandler().call("getObjectsByOwner", owner)
end end
return BlessCurseManagerApi -- sends new information to the reference handler to edit the main index
---@param owner string Parent of the object
---@param type string Type of the object
---@param guid string GUID of the object
GUIDReferenceApi.editIndex = function(owner, type, guid)
return getGuidHandler().call("editIndex", {
owner = owner,
type = type,
guid = guid
})
end
return GUIDReferenceApi
end end
end) end)
__bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules)
@ -472,14 +564,6 @@ do
end end
end end
-- Returns the position of the draw pile of the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.getDrawPosition = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.call("returnGlobalDrawPosition")
end
end
-- Transforms a local position into a global position -- Transforms a local position into a global position
---@param localPos table Local position to be transformed ---@param localPos table Local position to be transformed
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All") ---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
@ -543,15 +627,6 @@ do
end end
end end
-- Returns the position for encounter card drawing
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
---@param stack boolean If true, returns the leftmost position instead of the first empty from the right
PlaymatApi.getEncounterCardDrawPosition = function(matColor, stack)
for _, mat in pairs(getMatForColor(matColor)) do
return Vector(mat.call("getEncounterCardDrawPosition", stack))
end
end
-- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If
-- matchTypes is true, the main card slot snap points will only snap assets, while the -- matchTypes is true, the main card slot snap points will only snap assets, while the
-- investigator area point will only snap Investigators. If matchTypes is false, snap points will -- investigator area point will only snap Investigators. If matchTypes is false, snap points will
@ -600,7 +675,7 @@ do
return count return count
end end
-- Updates the specified owned counter -- updates the specified owned counter
---@param matColor string Color of the playmat - White, Orange, Green, Red or All ---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param type string Counter to target ---@param type string Counter to target
---@param newValue number Value to set the counter to ---@param newValue number Value to set the counter to
@ -611,7 +686,7 @@ do
end end
end end
-- Triggers the draw function for the specified playmat -- triggers the draw function for the specified playmat
---@param matColor string Color of the playmat - White, Orange, Green, Red or All ---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param number number Amount of cards to draw ---@param number number Amount of cards to draw
PlaymatApi.drawCardsWithReshuffle = function(matColor, number) PlaymatApi.drawCardsWithReshuffle = function(matColor, number)
@ -620,7 +695,7 @@ do
end end
end end
-- Returns the resource counter amount -- returns the resource counter amount
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All") ---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
---@param type string Counter to target ---@param type string Counter to target
PlaymatApi.getCounterValue = function(matColor, type) PlaymatApi.getCounterValue = function(matColor, type)
@ -629,13 +704,15 @@ do
end end
end end
-- Returns a list of mat colors that have an investigator placed -- returns a list of mat colors that have an investigator placed
PlaymatApi.getUsedMatColors = function() PlaymatApi.getUsedMatColors = function()
local localInvestigatorPosition = { x = -1.17, y = 1, z = -0.01 } local localInvestigatorPosition = { x = -1.17, y = 1, z = -0.01 }
local usedColors = {} local usedColors = {}
for matColor, mat in pairs(getMatForColor("All")) do for matColor, mat in pairs(getMatForColor("All")) do
local searchPos = mat.positionToWorld(localInvestigatorPosition) local searchPos = mat.positionToWorld(localInvestigatorPosition)
local searchResult = searchLib.atPosition(searchPos, "isCardOrDeck") local searchResult = searchLib.atPosition(searchPos, "isCardOrDeck")
if #searchResult > 0 then if #searchResult > 0 then
table.insert(usedColors, matColor) table.insert(usedColors, matColor)
end end
@ -643,7 +720,7 @@ do
return usedColors return usedColors
end end
-- Resets the specified skill tracker to "1, 1, 1, 1" -- resets the specified skill tracker to "1, 1, 1, 1"
---@param matColor string Color of the playmat - White, Orange, Green, Red or All ---@param matColor string Color of the playmat - White, Orange, Green, Red or All
PlaymatApi.resetSkillTracker = function(matColor) PlaymatApi.resetSkillTracker = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do for _, mat in pairs(getMatForColor(matColor)) do
@ -651,7 +728,7 @@ do
end end
end end
-- Finds all objects on the playmat and associated set aside zone and returns a table -- finds all objects on the playmat and associated set aside zone and returns a table
---@param matColor string Color of the playmat - White, Orange, Green, Red or All ---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param filter string Name of the filte function (see util/SearchLib) ---@param filter string Name of the filte function (see util/SearchLib)
PlaymatApi.searchAroundPlaymat = function(matColor, filter) PlaymatApi.searchAroundPlaymat = function(matColor, filter)
@ -682,9 +759,6 @@ do
return PlaymatApi return PlaymatApi
end end
end) end)
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
require("playercards/cards/DarkRitual")
end)
__bundle_register("playercards/cards/DarkRitual", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("playercards/cards/DarkRitual", function(require, _LOADED, __bundle_register, __bundle_modules)
VALID_TOKENS = { VALID_TOKENS = {
["Curse"] = true ["Curse"] = true
@ -694,38 +768,64 @@ KEEP_OPEN = true
require("playercards/CardsThatSealTokens") require("playercards/CardsThatSealTokens")
end) end)
__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules)
do do
local TokenArrangerApi = {} local BlessCurseManagerApi = {}
local guidReferenceApi = require("core/GUIDReferenceApi") local guidReferenceApi = require("core/GUIDReferenceApi")
-- local function to call the token arranger, if it is on the table local function getManager()
---@param functionName string Name of the function to cal return guidReferenceApi.getObjectByOwnerAndType("Mythos", "BlessCurseManager")
---@param argument? table Parameter to pass
local function callIfExistent(functionName, argument)
local tokenArranger = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenArranger")
if tokenArranger ~= nil then
tokenArranger.call(functionName, argument)
end
end end
-- updates the token modifiers with the provided data -- removes all taken tokens and resets the counts
---@param fullData table Contains the chaos token metadata BlessCurseManagerApi.removeTakenTokensAndReset = function()
TokenArrangerApi.onTokenDataChanged = function(fullData) local BlessCurseManager = getManager()
callIfExistent("onTokenDataChanged", fullData) Wait.time(function() BlessCurseManager.call("removeTakenTokens", "Bless") end, 0.05)
Wait.time(function() BlessCurseManager.call("removeTakenTokens", "Curse") end, 0.10)
Wait.time(function() BlessCurseManager.call("doReset", "White") end, 0.15)
end end
-- deletes already laid out tokens -- updates the internal count (called by cards that seal bless/curse tokens)
TokenArrangerApi.deleteCopiedTokens = function() ---@param type string Type of chaos token ("Bless" or "Curse")
callIfExistent("deleteCopiedTokens") ---@param guid string GUID of the token
BlessCurseManagerApi.sealedToken = function(type, guid)
getManager().call("sealedToken", { type = type, guid = guid })
end end
-- updates the laid out tokens -- updates the internal count (called by cards that seal bless/curse tokens)
TokenArrangerApi.layout = function() ---@param type string Type of chaos token ("Bless" or "Curse")
Wait.time(function() callIfExistent("layout") end, 0.1) ---@param guid string GUID of the token
BlessCurseManagerApi.releasedToken = function(type, guid)
getManager().call("releasedToken", { type = type, guid = guid })
end end
return TokenArrangerApi -- updates the internal count (called by cards that seal bless/curse tokens)
---@param type string Type of chaos token ("Bless" or "Curse")
---@param guid string GUID of the token
BlessCurseManagerApi.returnedToken = function(type, guid)
getManager().call("returnedToken", { type = type, guid = guid })
end
-- broadcasts the current status for bless/curse tokens
---@param playerColor string Color of the player to show the broadcast to
BlessCurseManagerApi.broadcastStatus = function(playerColor)
getManager().call("broadcastStatus", playerColor)
end
-- removes all bless / curse tokens from the chaos bag and play
---@param playerColor string Color of the player to show the broadcast to
BlessCurseManagerApi.removeAll = function(playerColor)
getManager().call("doRemove", playerColor)
end
-- adds bless / curse sealing to the hovered card
---@param playerColor string Color of the player to show the broadcast to
---@param hoveredObject tts__Object Hovered object
BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject)
getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject })
end
return BlessCurseManagerApi
end end
end) end)
__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules)
@ -802,9 +902,8 @@ do
---@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 ---@param tokenType? string Name of token (e.g. "Bless") to be drawn from the bag
---@param guidToBeResolved? string GUID of the sealed token to be resolved instead of drawing a token from the bag ---@param guidToBeResolved? string GUID of the sealed token to be resolved instead of drawing a token from the bag
---@param returnedToken? tts__Object Token to be replaced with newly drawn token ChaosBagApi.drawChaosToken = function(mat, drawAdditional, tokenType, guidToBeResolved)
ChaosBagApi.drawChaosToken = function(mat, drawAdditional, tokenType, guidToBeResolved, returnedToken) return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional, tokenType = tokenType, guidToBeResolved = guidToBeResolved})
return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional, tokenType = tokenType, guidToBeResolved = guidToBeResolved, returnedToken = returnedToken})
end end
-- returns a Table List of chaos token ids in the current chaos bag -- returns a Table List of chaos token ids in the current chaos bag
@ -816,127 +915,4 @@ do
return ChaosBagApi return ChaosBagApi
end end
end) end)
__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules)
do
local GUIDReferenceApi = {}
local function getGuidHandler()
return getObjectFromGUID("123456")
end
-- Returns the matching object
---@param owner string Parent object for this search
---@param type string Type of object to search for
---@return any: Object reference to the matching object
GUIDReferenceApi.getObjectByOwnerAndType = function(owner, type)
return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type })
end
-- Returns all matching objects as a table with references
---@param type string Type of object to search for
---@return table: List of object references to matching objects
GUIDReferenceApi.getObjectsByType = function(type)
return getGuidHandler().call("getObjectsByType", type)
end
-- Returns all matching objects as a table with references
---@param owner string Parent object for this search
---@return table: List of object references to matching objects
GUIDReferenceApi.getObjectsByOwner = function(owner)
return getGuidHandler().call("getObjectsByOwner", owner)
end
-- Sends new information to the reference handler to edit the main index
---@param owner string Parent of the object
---@param type string Type of the object
---@param guid string GUID of the object
GUIDReferenceApi.editIndex = function(owner, type, guid)
return getGuidHandler().call("editIndex", {
owner = owner,
type = type,
guid = guid
})
end
-- Returns the owner of an object or the object it's located on
---@param object tts__GameObject Object for this search
---@return string: Parent of the object or object it's located on
GUIDReferenceApi.getOwnerOfObject = function(object)
return getGuidHandler().call("getOwnerOfObject", object)
end
return GUIDReferenceApi
end
end)
__bundle_register("util/SearchLib", function(require, _LOADED, __bundle_register, __bundle_modules)
do
local SearchLib = {}
local filterFunctions = {
isActionToken = function(x) return x.getDescription() == "Action Token" end,
isCard = function(x) return x.type == "Card" end,
isDeck = function(x) return x.type == "Deck" end,
isCardOrDeck = function(x) return x.type == "Card" or x.type == "Deck" end,
isClue = function(x) return x.memo == "clueDoom" and x.is_face_down == false end,
isTileOrToken = function(x) return x.type == "Tile" end
}
-- performs the actual search and returns a filtered list of object references
---@param pos tts__Vector Global position
---@param rot? tts__Vector Global rotation
---@param size table Size
---@param filter? string Name of the filter function
---@param direction? table Direction (positive is up)
---@param maxDistance? number Distance for the cast
local function returnSearchResult(pos, rot, size, filter, direction, maxDistance)
local filterFunc
if filter then
filterFunc = filterFunctions[filter]
end
local searchResult = Physics.cast({
origin = pos,
direction = direction or { 0, 1, 0 },
orientation = rot or { 0, 0, 0 },
type = 3,
size = size,
max_distance = maxDistance or 0
})
-- filtering the result
local objList = {}
for _, v in ipairs(searchResult) do
if not filter or filterFunc(v.hit_object) then
table.insert(objList, v.hit_object)
end
end
return objList
end
-- searches the specified area
SearchLib.inArea = function(pos, rot, size, filter)
return returnSearchResult(pos, rot, size, filter)
end
-- searches the area on an object
SearchLib.onObject = function(obj, filter)
pos = obj.getPosition()
size = obj.getBounds().size:setAt("y", 1)
return returnSearchResult(pos, _, size, filter)
end
-- searches the specified position (a single point)
SearchLib.atPosition = function(pos, filter)
size = { 0.1, 2, 0.1 }
return returnSearchResult(pos, _, size, filter)
end
-- searches below the specified position (downwards until y = 0)
SearchLib.belowPosition = function(pos, filter)
direction = { 0, -1, 0 }
maxDistance = pos.y
return returnSearchResult(pos, _, size, filter, direction, maxDistance)
end
return SearchLib
end
end)
return __bundle_require("__root") return __bundle_require("__root")

View File

@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917453 CardID: 94756
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -115,9 +115,8 @@ do
---@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 ---@param tokenType? string Name of token (e.g. "Bless") to be drawn from the bag
---@param guidToBeResolved? string GUID of the sealed token to be resolved instead of drawing a token from the bag ---@param guidToBeResolved? string GUID of the sealed token to be resolved instead of drawing a token from the bag
---@param returnedToken? tts__Object Token to be replaced with newly drawn token ChaosBagApi.drawChaosToken = function(mat, drawAdditional, tokenType, guidToBeResolved)
ChaosBagApi.drawChaosToken = function(mat, drawAdditional, tokenType, guidToBeResolved, returnedToken) return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional, tokenType = tokenType, guidToBeResolved = guidToBeResolved})
return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional, tokenType = tokenType, guidToBeResolved = guidToBeResolved, returnedToken = returnedToken})
end end
-- returns a Table List of chaos token ids in the current chaos bag -- returns a Table List of chaos token ids in the current chaos bag
@ -137,7 +136,6 @@ do
return getObjectFromGUID("123456") return getObjectFromGUID("123456")
end end
-- Returns the matching object
---@param owner string Parent object for this search ---@param owner string Parent object for this search
---@param type string Type of object to search for ---@param type string Type of object to search for
---@return any: Object reference to the matching object ---@return any: Object reference to the matching object
@ -145,21 +143,21 @@ do
return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type }) return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type })
end end
-- Returns all matching objects as a table with references -- returns all matching objects as a table with references
---@param type string Type of object to search for ---@param type string Type of object to search for
---@return table: List of object references to matching objects ---@return table: List of object references to matching objects
GUIDReferenceApi.getObjectsByType = function(type) GUIDReferenceApi.getObjectsByType = function(type)
return getGuidHandler().call("getObjectsByType", type) return getGuidHandler().call("getObjectsByType", type)
end end
-- Returns all matching objects as a table with references -- returns all matching objects as a table with references
---@param owner string Parent object for this search ---@param owner string Parent object for this search
---@return table: List of object references to matching objects ---@return table: List of object references to matching objects
GUIDReferenceApi.getObjectsByOwner = function(owner) GUIDReferenceApi.getObjectsByOwner = function(owner)
return getGuidHandler().call("getObjectsByOwner", owner) return getGuidHandler().call("getObjectsByOwner", owner)
end end
-- Sends new information to the reference handler to edit the main index -- sends new information to the reference handler to edit the main index
---@param owner string Parent of the object ---@param owner string Parent of the object
---@param type string Type of the object ---@param type string Type of the object
---@param guid string GUID of the object ---@param guid string GUID of the object
@ -171,308 +169,83 @@ do
}) })
end end
-- Returns the owner of an object or the object it's located on
---@param object tts__GameObject Object for this search
---@return string: Parent of the object or object it's located on
GUIDReferenceApi.getOwnerOfObject = function(object)
return getGuidHandler().call("getOwnerOfObject", object)
end
return GUIDReferenceApi return GUIDReferenceApi
end end
end) end)
__bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("util/SearchLib", function(require, _LOADED, __bundle_register, __bundle_modules)
do do
local PlaymatApi = {} local SearchLib = {}
local guidReferenceApi = require("core/GUIDReferenceApi") local filterFunctions = {
local searchLib = require("util/SearchLib") isActionToken = function(x) return x.getDescription() == "Action Token" end,
isCard = function(x) return x.type == "Card" end,
-- Convenience function to look up a mat's object by color, or get all mats. isDeck = function(x) return x.type == "Deck" end,
---@param matColor string Color of the playmat - White, Orange, Green, Red or All isCardOrDeck = function(x) return x.type == "Card" or x.type == "Deck" end,
---@return table: Single-element if only single playmat is requested isClue = function(x) return x.memo == "clueDoom" and x.is_face_down == false end,
local function getMatForColor(matColor) isTileOrToken = function(x) return x.type == "Tile" end
if matColor == "All" then
return guidReferenceApi.getObjectsByType("Playermat")
else
return { matColor = guidReferenceApi.getObjectByOwnerAndType(matColor, "Playermat") }
end
end
-- Returns the color of the closest playmat
---@param startPos table Starting position to get the closest mat from
PlaymatApi.getMatColorByPosition = function(startPos)
local result, smallestDistance
for matColor, mat in pairs(getMatForColor("All")) do
local distance = Vector.between(startPos, mat.getPosition()):magnitude()
if smallestDistance == nil or distance < smallestDistance then
smallestDistance = distance
result = matColor
end
end
return result
end
-- Returns the color of the player's hand that is seated next to the playmat
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.getPlayerColor = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.getVar("playerColor")
end
end
-- Returns the color of the playmat that owns the playercolor's hand
---@param handColor string Color of the playmat
PlaymatApi.getMatColor = function(handColor)
for matColor, mat in pairs(getMatForColor("All")) do
local playerColor = mat.getVar("playerColor")
if playerColor == handColor then
return matColor
end
end
end
-- Returns if there is the card "Dream-Enhancing Serum" on the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.isDES = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.getVar("isDES")
end
end
-- Performs a search of the deck area of the requested playmat and returns the result as table
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.getDeckAreaObjects = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.call("getDeckAreaObjects")
end
end
-- Flips the top card of the deck (useful after deck manipulation for Norman Withers)
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.flipTopCardFromDeck = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.call("flipTopCardFromDeck")
end
end
-- Returns the position of the discard pile of the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.getDiscardPosition = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.call("returnGlobalDiscardPosition")
end
end
-- Returns the position of the draw pile of the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.getDrawPosition = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.call("returnGlobalDrawPosition")
end
end
-- Transforms a local position into a global position
---@param localPos table Local position to be transformed
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.transformLocalPosition = function(localPos, matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.positionToWorld(localPos)
end
end
-- Returns the rotation of the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.returnRotation = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.getRotation()
end
end
-- Returns a table with spawn data (position and rotation) for a helper object
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param helperName string Name of the helper object
PlaymatApi.getHelperSpawnData = function(matColor, helperName)
local resultTable = {}
local localPositionTable = {
["Hand Helper"] = {0.05, 0, -1.182},
["Search Assistant"] = {-0.3, 0, -1.182}
} }
for color, mat in pairs(getMatForColor(matColor)) do -- performs the actual search and returns a filtered list of object references
resultTable[color] = { ---@param pos tts__Vector Global position
position = mat.positionToWorld(localPositionTable[helperName]), ---@param rot? tts__Vector Global rotation
rotation = mat.getRotation() ---@param size table Size
} ---@param filter? string Name of the filter function
end ---@param direction? table Direction (positive is up)
return resultTable ---@param maxDistance? number Distance for the cast
local function returnSearchResult(pos, rot, size, filter, direction, maxDistance)
local filterFunc
if filter then
filterFunc = filterFunctions[filter]
end end
local searchResult = Physics.cast({
origin = pos,
direction = direction or { 0, 1, 0 },
orientation = rot or { 0, 0, 0 },
type = 3,
size = size,
max_distance = maxDistance or 0
})
-- filtering the result
-- Triggers the Upkeep for the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param playerColor string Color of the calling player (for messages)
PlaymatApi.doUpkeepFromHotkey = function(matColor, playerColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("doUpkeepFromHotkey", playerColor)
end
end
-- Handles discarding for the requested playmat for the provided list of objects
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
---@param objList table List of objects to discard
PlaymatApi.discardListOfObjects = function(matColor, objList)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("discardListOfObjects", objList)
end
end
-- Returns the active investigator id
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.returnInvestigatorId = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.getVar("activeInvestigatorId")
end
end
-- Returns the position for encounter card drawing
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
---@param stack boolean If true, returns the leftmost position instead of the first empty from the right
PlaymatApi.getEncounterCardDrawPosition = function(matColor, stack)
for _, mat in pairs(getMatForColor(matColor)) do
return Vector(mat.call("getEncounterCardDrawPosition", stack))
end
end
-- Sets the requested playmat's snap points to limit snapping to matching card types or not. If
-- matchTypes is true, the main card slot snap points will only snap assets, while the
-- investigator area point will only snap Investigators. If matchTypes is false, snap points will
-- be reset to snap all cards.
---@param matchCardTypes boolean Whether snap points should only snap for the matching card types
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
PlaymatApi.setLimitSnapsByType = function(matchCardTypes, matColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("setLimitSnapsByType", matchCardTypes)
end
end
-- Sets the requested playmat's draw 1 button to visible
---@param isDrawButtonVisible boolean Whether the draw 1 button should be visible or not
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
PlaymatApi.showDrawButton = function(isDrawButtonVisible, matColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("showDrawButton", isDrawButtonVisible)
end
end
-- Shows or hides the clickable clue counter for the requested playmat
---@param showCounter boolean Whether the clickable counter should be present or not
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
PlaymatApi.clickableClues = function(showCounter, matColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("clickableClues", showCounter)
end
end
-- Removes all clues (to the trash for tokens and counters set to 0) for the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
PlaymatApi.removeClues = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("removeClues")
end
end
-- Reports the clue count for the requested playmat
---@param useClickableCounters boolean Controls which type of counter is getting checked
PlaymatApi.getClueCount = function(useClickableCounters, matColor)
local count = 0
for _, mat in pairs(getMatForColor(matColor)) do
count = count + mat.call("getClueCount", useClickableCounters)
end
return count
end
-- Updates the specified owned counter
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param type string Counter to target
---@param newValue number Value to set the counter to
---@param modifier number If newValue is not provided, the existing value will be adjusted by this modifier
PlaymatApi.updateCounter = function(matColor, type, newValue, modifier)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("updateCounter", { type = type, newValue = newValue, modifier = modifier })
end
end
-- Triggers the draw function for the specified playmat
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param number number Amount of cards to draw
PlaymatApi.drawCardsWithReshuffle = function(matColor, number)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("drawCardsWithReshuffle", number)
end
end
-- Returns the resource counter amount
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
---@param type string Counter to target
PlaymatApi.getCounterValue = function(matColor, type)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.call("getCounterValue", type)
end
end
-- Returns a list of mat colors that have an investigator placed
PlaymatApi.getUsedMatColors = function()
local localInvestigatorPosition = { x = -1.17, y = 1, z = -0.01 }
local usedColors = {}
for matColor, mat in pairs(getMatForColor("All")) do
local searchPos = mat.positionToWorld(localInvestigatorPosition)
local searchResult = searchLib.atPosition(searchPos, "isCardOrDeck")
if #searchResult > 0 then
table.insert(usedColors, matColor)
end
end
return usedColors
end
-- Resets the specified skill tracker to "1, 1, 1, 1"
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
PlaymatApi.resetSkillTracker = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("resetSkillTracker")
end
end
-- Finds all objects on the playmat and associated set aside zone and returns a table
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param filter string Name of the filte function (see util/SearchLib)
PlaymatApi.searchAroundPlaymat = function(matColor, filter)
local objList = {} local objList = {}
for _, mat in pairs(getMatForColor(matColor)) do for _, v in ipairs(searchResult) do
for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do if not filter or filterFunc(v.hit_object) then
table.insert(objList, obj) table.insert(objList, v.hit_object)
end end
end end
return objList return objList
end end
-- Discard a non-hidden card from the corresponding player's hand -- searches the specified area
---@param matColor string Color of the playmat - White, Orange, Green, Red or All SearchLib.inArea = function(pos, rot, size, filter)
PlaymatApi.doDiscardOne = function(matColor) return returnSearchResult(pos, rot, size, filter)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("doDiscardOne")
end
end end
-- Triggers the metadata sync for all playmats -- searches the area on an object
PlaymatApi.syncAllCustomizableCards = function() SearchLib.onObject = function(obj, filter)
for _, mat in pairs(getMatForColor("All")) do pos = obj.getPosition()
mat.call("syncAllCustomizableCards") size = obj.getBounds().size:setAt("y", 1)
end return returnSearchResult(pos, _, size, filter)
end end
return PlaymatApi -- searches the specified position (a single point)
SearchLib.atPosition = function(pos, filter)
size = { 0.1, 2, 0.1 }
return returnSearchResult(pos, _, size, filter)
end
-- searches below the specified position (downwards until y = 0)
SearchLib.belowPosition = function(pos, filter)
direction = { 0, -1, 0 }
maxDistance = pos.y
return returnSearchResult(pos, _, size, filter, direction, maxDistance)
end
return SearchLib
end end
end) end)
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
require("playercards/cards/DayofReckoning")
end)
__bundle_register("playercards/cards/DayofReckoning", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("playercards/cards/DayofReckoning", function(require, _LOADED, __bundle_register, __bundle_modules)
VALID_TOKENS = { VALID_TOKENS = {
["Elder Sign"] = true ["Elder Sign"] = true
@ -480,103 +253,6 @@ VALID_TOKENS = {
require("playercards/CardsThatSealTokens") require("playercards/CardsThatSealTokens")
end) end)
__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules)
do
local TokenArrangerApi = {}
local guidReferenceApi = require("core/GUIDReferenceApi")
-- local function to call the token arranger, if it is on the table
---@param functionName string Name of the function to cal
---@param argument? table Parameter to pass
local function callIfExistent(functionName, argument)
local tokenArranger = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenArranger")
if tokenArranger ~= nil then
tokenArranger.call(functionName, argument)
end
end
-- updates the token modifiers with the provided data
---@param fullData table Contains the chaos token metadata
TokenArrangerApi.onTokenDataChanged = function(fullData)
callIfExistent("onTokenDataChanged", fullData)
end
-- deletes already laid out tokens
TokenArrangerApi.deleteCopiedTokens = function()
callIfExistent("deleteCopiedTokens")
end
-- updates the laid out tokens
TokenArrangerApi.layout = function()
Wait.time(function() callIfExistent("layout") end, 0.1)
end
return TokenArrangerApi
end
end)
__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules)
do
local BlessCurseManagerApi = {}
local guidReferenceApi = require("core/GUIDReferenceApi")
local function getManager()
return guidReferenceApi.getObjectByOwnerAndType("Mythos", "BlessCurseManager")
end
-- removes all taken tokens and resets the counts
BlessCurseManagerApi.removeTakenTokensAndReset = function()
local BlessCurseManager = getManager()
Wait.time(function() BlessCurseManager.call("removeTakenTokens", "Bless") end, 0.05)
Wait.time(function() BlessCurseManager.call("removeTakenTokens", "Curse") end, 0.10)
Wait.time(function() BlessCurseManager.call("doReset", "White") end, 0.15)
end
-- updates the internal count (called by cards that seal bless/curse tokens)
---@param type string Type of chaos token ("Bless" or "Curse")
---@param guid string GUID of the token
BlessCurseManagerApi.sealedToken = function(type, guid)
getManager().call("sealedToken", { type = type, guid = guid })
end
-- updates the internal count (called by cards that seal bless/curse tokens)
---@param type string Type of chaos token ("Bless" or "Curse")
---@param guid string GUID of the token
BlessCurseManagerApi.releasedToken = function(type, guid)
getManager().call("releasedToken", { type = type, guid = guid })
end
-- updates the internal count (called by cards that seal bless/curse tokens)
---@param type string Type of chaos token ("Bless" or "Curse")
---@param guid string GUID of the token
BlessCurseManagerApi.returnedToken = function(type, guid)
getManager().call("returnedToken", { type = type, guid = guid })
end
-- broadcasts the current status for bless/curse tokens
---@param playerColor string Color of the player to show the broadcast to
BlessCurseManagerApi.broadcastStatus = function(playerColor)
getManager().call("broadcastStatus", playerColor)
end
-- removes all bless / curse tokens from the chaos bag and play
---@param playerColor string Color of the player to show the broadcast to
BlessCurseManagerApi.removeAll = function(playerColor)
getManager().call("doRemove", playerColor)
end
-- adds bless / curse sealing to the hovered card
---@param playerColor string Color of the player to show the broadcast to
---@param hoveredObject tts__Object Hovered object
BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject)
getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject })
end
return BlessCurseManagerApi
end
end)
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
require("playercards/cards/DayofReckoning")
end)
__bundle_register("playercards/CardsThatSealTokens", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("playercards/CardsThatSealTokens", function(require, _LOADED, __bundle_register, __bundle_modules)
--[[ Library for cards that seal tokens --[[ Library for cards that seal tokens
This file is used to add sealing option to cards' context menu. This file is used to add sealing option to cards' context menu.
@ -866,75 +542,375 @@ function resolveSealed()
chaosBagApi.drawChaosToken(mat, true, _, guidToBeResolved) chaosBagApi.drawChaosToken(mat, true, _, guidToBeResolved)
end end
end) end)
__bundle_register("util/SearchLib", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules)
do do
local SearchLib = {} local TokenArrangerApi = {}
local filterFunctions = { local guidReferenceApi = require("core/GUIDReferenceApi")
isActionToken = function(x) return x.getDescription() == "Action Token" end,
isCard = function(x) return x.type == "Card" end, -- local function to call the token arranger, if it is on the table
isDeck = function(x) return x.type == "Deck" end, ---@param functionName string Name of the function to cal
isCardOrDeck = function(x) return x.type == "Card" or x.type == "Deck" end, ---@param argument? table Parameter to pass
isClue = function(x) return x.memo == "clueDoom" and x.is_face_down == false end, local function callIfExistent(functionName, argument)
isTileOrToken = function(x) return x.type == "Tile" end local tokenArranger = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenArranger")
if tokenArranger ~= nil then
tokenArranger.call(functionName, argument)
end
end
-- updates the token modifiers with the provided data
---@param fullData table Contains the chaos token metadata
TokenArrangerApi.onTokenDataChanged = function(fullData)
callIfExistent("onTokenDataChanged", fullData)
end
-- deletes already laid out tokens
TokenArrangerApi.deleteCopiedTokens = function()
callIfExistent("deleteCopiedTokens")
end
-- updates the laid out tokens
TokenArrangerApi.layout = function()
Wait.time(function() callIfExistent("layout") end, 0.1)
end
return TokenArrangerApi
end
end)
__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules)
do
local BlessCurseManagerApi = {}
local guidReferenceApi = require("core/GUIDReferenceApi")
local function getManager()
return guidReferenceApi.getObjectByOwnerAndType("Mythos", "BlessCurseManager")
end
-- removes all taken tokens and resets the counts
BlessCurseManagerApi.removeTakenTokensAndReset = function()
local BlessCurseManager = getManager()
Wait.time(function() BlessCurseManager.call("removeTakenTokens", "Bless") end, 0.05)
Wait.time(function() BlessCurseManager.call("removeTakenTokens", "Curse") end, 0.10)
Wait.time(function() BlessCurseManager.call("doReset", "White") end, 0.15)
end
-- updates the internal count (called by cards that seal bless/curse tokens)
---@param type string Type of chaos token ("Bless" or "Curse")
---@param guid string GUID of the token
BlessCurseManagerApi.sealedToken = function(type, guid)
getManager().call("sealedToken", { type = type, guid = guid })
end
-- updates the internal count (called by cards that seal bless/curse tokens)
---@param type string Type of chaos token ("Bless" or "Curse")
---@param guid string GUID of the token
BlessCurseManagerApi.releasedToken = function(type, guid)
getManager().call("releasedToken", { type = type, guid = guid })
end
-- updates the internal count (called by cards that seal bless/curse tokens)
---@param type string Type of chaos token ("Bless" or "Curse")
---@param guid string GUID of the token
BlessCurseManagerApi.returnedToken = function(type, guid)
getManager().call("returnedToken", { type = type, guid = guid })
end
-- broadcasts the current status for bless/curse tokens
---@param playerColor string Color of the player to show the broadcast to
BlessCurseManagerApi.broadcastStatus = function(playerColor)
getManager().call("broadcastStatus", playerColor)
end
-- removes all bless / curse tokens from the chaos bag and play
---@param playerColor string Color of the player to show the broadcast to
BlessCurseManagerApi.removeAll = function(playerColor)
getManager().call("doRemove", playerColor)
end
-- adds bless / curse sealing to the hovered card
---@param playerColor string Color of the player to show the broadcast to
---@param hoveredObject tts__Object Hovered object
BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject)
getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject })
end
return BlessCurseManagerApi
end
end)
__bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules)
do
local PlaymatApi = {}
local guidReferenceApi = require("core/GUIDReferenceApi")
local searchLib = require("util/SearchLib")
-- Convenience function to look up a mat's object by color, or get all mats.
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@return table: Single-element if only single playmat is requested
local function getMatForColor(matColor)
if matColor == "All" then
return guidReferenceApi.getObjectsByType("Playermat")
else
return { matColor = guidReferenceApi.getObjectByOwnerAndType(matColor, "Playermat") }
end
end
-- Returns the color of the closest playmat
---@param startPos table Starting position to get the closest mat from
PlaymatApi.getMatColorByPosition = function(startPos)
local result, smallestDistance
for matColor, mat in pairs(getMatForColor("All")) do
local distance = Vector.between(startPos, mat.getPosition()):magnitude()
if smallestDistance == nil or distance < smallestDistance then
smallestDistance = distance
result = matColor
end
end
return result
end
-- Returns the color of the player's hand that is seated next to the playmat
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.getPlayerColor = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.getVar("playerColor")
end
end
-- Returns the color of the playmat that owns the playercolor's hand
---@param handColor string Color of the playmat
PlaymatApi.getMatColor = function(handColor)
for matColor, mat in pairs(getMatForColor("All")) do
local playerColor = mat.getVar("playerColor")
if playerColor == handColor then
return matColor
end
end
end
-- Returns if there is the card "Dream-Enhancing Serum" on the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.isDES = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.getVar("isDES")
end
end
-- Performs a search of the deck area of the requested playmat and returns the result as table
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.getDeckAreaObjects = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.call("getDeckAreaObjects")
end
end
-- Flips the top card of the deck (useful after deck manipulation for Norman Withers)
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.flipTopCardFromDeck = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.call("flipTopCardFromDeck")
end
end
-- Returns the position of the discard pile of the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.getDiscardPosition = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.call("returnGlobalDiscardPosition")
end
end
-- Transforms a local position into a global position
---@param localPos table Local position to be transformed
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.transformLocalPosition = function(localPos, matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.positionToWorld(localPos)
end
end
-- Returns the rotation of the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.returnRotation = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.getRotation()
end
end
-- Returns a table with spawn data (position and rotation) for a helper object
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param helperName string Name of the helper object
PlaymatApi.getHelperSpawnData = function(matColor, helperName)
local resultTable = {}
local localPositionTable = {
["Hand Helper"] = {0.05, 0, -1.182},
["Search Assistant"] = {-0.3, 0, -1.182}
} }
-- performs the actual search and returns a filtered list of object references for color, mat in pairs(getMatForColor(matColor)) do
---@param pos tts__Vector Global position resultTable[color] = {
---@param rot? tts__Vector Global rotation position = mat.positionToWorld(localPositionTable[helperName]),
---@param size table Size rotation = mat.getRotation()
---@param filter? string Name of the filter function }
---@param direction? table Direction (positive is up) end
---@param maxDistance? number Distance for the cast return resultTable
local function returnSearchResult(pos, rot, size, filter, direction, maxDistance)
local filterFunc
if filter then
filterFunc = filterFunctions[filter]
end end
local searchResult = Physics.cast({
origin = pos,
direction = direction or { 0, 1, 0 },
orientation = rot or { 0, 0, 0 },
type = 3,
size = size,
max_distance = maxDistance or 0
})
-- filtering the result
-- Triggers the Upkeep for the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param playerColor string Color of the calling player (for messages)
PlaymatApi.doUpkeepFromHotkey = function(matColor, playerColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("doUpkeepFromHotkey", playerColor)
end
end
-- Handles discarding for the requested playmat for the provided list of objects
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
---@param objList table List of objects to discard
PlaymatApi.discardListOfObjects = function(matColor, objList)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("discardListOfObjects", objList)
end
end
-- Returns the active investigator id
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.returnInvestigatorId = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.getVar("activeInvestigatorId")
end
end
-- Sets the requested playmat's snap points to limit snapping to matching card types or not. If
-- matchTypes is true, the main card slot snap points will only snap assets, while the
-- investigator area point will only snap Investigators. If matchTypes is false, snap points will
-- be reset to snap all cards.
---@param matchCardTypes boolean Whether snap points should only snap for the matching card types
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
PlaymatApi.setLimitSnapsByType = function(matchCardTypes, matColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("setLimitSnapsByType", matchCardTypes)
end
end
-- Sets the requested playmat's draw 1 button to visible
---@param isDrawButtonVisible boolean Whether the draw 1 button should be visible or not
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
PlaymatApi.showDrawButton = function(isDrawButtonVisible, matColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("showDrawButton", isDrawButtonVisible)
end
end
-- Shows or hides the clickable clue counter for the requested playmat
---@param showCounter boolean Whether the clickable counter should be present or not
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
PlaymatApi.clickableClues = function(showCounter, matColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("clickableClues", showCounter)
end
end
-- Removes all clues (to the trash for tokens and counters set to 0) for the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
PlaymatApi.removeClues = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("removeClues")
end
end
-- Reports the clue count for the requested playmat
---@param useClickableCounters boolean Controls which type of counter is getting checked
PlaymatApi.getClueCount = function(useClickableCounters, matColor)
local count = 0
for _, mat in pairs(getMatForColor(matColor)) do
count = count + mat.call("getClueCount", useClickableCounters)
end
return count
end
-- updates the specified owned counter
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param type string Counter to target
---@param newValue number Value to set the counter to
---@param modifier number If newValue is not provided, the existing value will be adjusted by this modifier
PlaymatApi.updateCounter = function(matColor, type, newValue, modifier)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("updateCounter", { type = type, newValue = newValue, modifier = modifier })
end
end
-- triggers the draw function for the specified playmat
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param number number Amount of cards to draw
PlaymatApi.drawCardsWithReshuffle = function(matColor, number)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("drawCardsWithReshuffle", number)
end
end
-- returns the resource counter amount
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
---@param type string Counter to target
PlaymatApi.getCounterValue = function(matColor, type)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.call("getCounterValue", type)
end
end
-- returns a list of mat colors that have an investigator placed
PlaymatApi.getUsedMatColors = function()
local localInvestigatorPosition = { x = -1.17, y = 1, z = -0.01 }
local usedColors = {}
for matColor, mat in pairs(getMatForColor("All")) do
local searchPos = mat.positionToWorld(localInvestigatorPosition)
local searchResult = searchLib.atPosition(searchPos, "isCardOrDeck")
if #searchResult > 0 then
table.insert(usedColors, matColor)
end
end
return usedColors
end
-- resets the specified skill tracker to "1, 1, 1, 1"
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
PlaymatApi.resetSkillTracker = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("resetSkillTracker")
end
end
-- finds all objects on the playmat and associated set aside zone and returns a table
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param filter string Name of the filte function (see util/SearchLib)
PlaymatApi.searchAroundPlaymat = function(matColor, filter)
local objList = {} local objList = {}
for _, v in ipairs(searchResult) do for _, mat in pairs(getMatForColor(matColor)) do
if not filter or filterFunc(v.hit_object) then for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do
table.insert(objList, v.hit_object) table.insert(objList, obj)
end end
end end
return objList return objList
end end
-- searches the specified area -- Discard a non-hidden card from the corresponding player's hand
SearchLib.inArea = function(pos, rot, size, filter) ---@param matColor string Color of the playmat - White, Orange, Green, Red or All
return returnSearchResult(pos, rot, size, filter) PlaymatApi.doDiscardOne = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
mat.call("doDiscardOne")
end
end end
-- searches the area on an object -- Triggers the metadata sync for all playmats
SearchLib.onObject = function(obj, filter) PlaymatApi.syncAllCustomizableCards = function()
pos = obj.getPosition() for _, mat in pairs(getMatForColor("All")) do
size = obj.getBounds().size:setAt("y", 1) mat.call("syncAllCustomizableCards")
return returnSearchResult(pos, _, size, filter) end
end end
-- searches the specified position (a single point) return PlaymatApi
SearchLib.atPosition = function(pos, filter)
size = { 0.1, 2, 0.1 }
return returnSearchResult(pos, _, size, filter)
end
-- searches below the specified position (downwards until y = 0)
SearchLib.belowPosition = function(pos, filter)
direction = { 0, -1, 0 }
maxDistance = pos.y
return returnSearchResult(pos, _, size, filter, direction, maxDistance)
end
return SearchLib
end end
end) end)
return __bundle_require("__root") return __bundle_require("__root")

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917367 CardID: 94725
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0
@ -34,7 +34,7 @@ LuaScript: ''
LuaScriptState: '' LuaScriptState: ''
MeasureMovement: false MeasureMovement: false
Name: Card Name: Card
Nickname: Diabolical Luck Nickname: Diabolical Luck (0)
SidewaysCard: false SidewaysCard: false
Snap: true Snap: true
Sticky: true Sticky: true

View File

@ -20,7 +20,7 @@ CustomDeck:
Description: Leave No Doubt Description: Leave No Doubt
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"90029\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n GMNotes: "{\n \"id\": \"90029\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n
\ \"startsInPlay\": true,\n \"permanent\": true,\n \"cycle\": \"Standalone\"\n}" \ \"permanent\": true,\n \"cycle\": \"Standalone\"\n}"
GUID: 07e7bd GUID: 07e7bd
Grid: true Grid: true
GridProjection: false GridProjection: false

View File

@ -20,7 +20,7 @@ CustomDeck:
Description: Consult Experts Description: Consult Experts
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"90027\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n GMNotes: "{\n \"id\": \"90027\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n
\ \"startsInPlay\": true,\n \"permanent\": true,\n \"cycle\": \"Standalone\"\n}" \ \"permanent\": true,\n \"cycle\": \"Standalone\"\n}"
GUID: 2d9256 GUID: 2d9256
Grid: true Grid: true
GridProjection: false GridProjection: false

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917402 CardID: 94729
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -11,8 +11,8 @@ ColorDiffuse:
CustomDeck: CustomDeck:
'3794': '3794':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578166/C21CC0E4ADE06C11419F36BAEDED0BDBFF8DE5E3/ BackURL: http://cloud-3.steamusercontent.com/ugc/1625226898126523297/2C981A8D79F76E3533ADD355F8AF406EA72B5162/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578395/F97B770FB90EA18B46F58614CCE0016406E3E777/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126522542/E29FEBE196344F3DEE457BE957E9AF18310C6F39/
NumHeight: 2 NumHeight: 2
NumWidth: 5 NumWidth: 5
Type: 0 Type: 0

View File

@ -11,8 +11,8 @@ ColorDiffuse:
CustomDeck: CustomDeck:
'3794': '3794':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578166/C21CC0E4ADE06C11419F36BAEDED0BDBFF8DE5E3/ BackURL: http://cloud-3.steamusercontent.com/ugc/1625226898126523297/2C981A8D79F76E3533ADD355F8AF406EA72B5162/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578395/F97B770FB90EA18B46F58614CCE0016406E3E777/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126522542/E29FEBE196344F3DEE457BE957E9AF18310C6F39/
NumHeight: 2 NumHeight: 2
NumWidth: 5 NumWidth: 5
Type: 0 Type: 0

View File

@ -11,8 +11,8 @@ ColorDiffuse:
CustomDeck: CustomDeck:
'3794': '3794':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578166/C21CC0E4ADE06C11419F36BAEDED0BDBFF8DE5E3/ BackURL: http://cloud-3.steamusercontent.com/ugc/1625226898126523297/2C981A8D79F76E3533ADD355F8AF406EA72B5162/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578395/F97B770FB90EA18B46F58614CCE0016406E3E777/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126522542/E29FEBE196344F3DEE457BE957E9AF18310C6F39/
NumHeight: 2 NumHeight: 2
NumWidth: 5 NumWidth: 5
Type: 0 Type: 0

View File

@ -11,8 +11,8 @@ ColorDiffuse:
CustomDeck: CustomDeck:
'3794': '3794':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578166/C21CC0E4ADE06C11419F36BAEDED0BDBFF8DE5E3/ BackURL: http://cloud-3.steamusercontent.com/ugc/1625226898126523297/2C981A8D79F76E3533ADD355F8AF406EA72B5162/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578395/F97B770FB90EA18B46F58614CCE0016406E3E777/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126522542/E29FEBE196344F3DEE457BE957E9AF18310C6F39/
NumHeight: 2 NumHeight: 2
NumWidth: 5 NumWidth: 5
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378930 CardID: 378939
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378932 CardID: 378941
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,18 +3,18 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917333 CardID: 12105
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '121':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/
NumHeight: 7 NumHeight: 2
NumWidth: 10 NumWidth: 6
Type: 0 Type: 0
UniqueBack: false UniqueBack: false
Description: Knows His Purpose Description: Knows His Purpose

View File

@ -1,57 +0,0 @@
AltLookAngle:
x: 0
y: 0
z: 0
Autoraise: true
CardID: 536427
ColorDiffuse:
b: 0.71324
g: 0.71324
r: 0.71324
CustomDeck:
'5364':
BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2453969772006048567/4C173CF8E2E2F69C7374D65AAA2D842C048FC792/
NumHeight: 5
NumWidth: 8
Type: 0
UniqueBack: false
Description: Best in Her Field
DragSelectable: true
GMNotes: "{\n \"id\": \"10702\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n
\ \"class\": \"Neutral\",\n \"cost\": 4,\n \"traits\": \"Ally. Miskatonic. Wayfarer.\",\n
\ \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\":
\"The Feast of Hemlock Vale\"\n}"
GUID: 62d5a6
Grid: true
GridProjection: false
Hands: true
HideWhenFaceDown: true
IgnoreFoW: false
LayoutGroupSortIndex: 0
Locked: false
LuaScript: ''
LuaScriptState: ''
MeasureMovement: false
Name: Card
Nickname: Dr. Rosa Marquez
SidewaysCard: false
Snap: true
Sticky: true
Tags:
- Asset
- PlayerCard
Tooltip: true
Transform:
posX: 31.17
posY: 3.67
posZ: 13.98
rotX: 0
rotY: 270
rotZ: 0
scaleX: 1
scaleY: 1
scaleZ: 1
Value: 0
XmlUI: ''

View File

@ -12,7 +12,7 @@ CustomDeck:
'3790': '3790':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -21,9 +21,9 @@ Description: Dreams of an Explorer
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"06236\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n GMNotes: "{\n \"id\": \"06236\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n
\ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item.
Tome. Charm.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"maxCount\": Tome. Charm.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\": \"06113\"\n
1,\n \"id\": \"06113\"\n }\n ],\n \"willpowerIcons\": 1,\n \"agilityIcons\": \ }\n ],\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The
1,\n \"cycle\": \"The Dream-Eaters\"\n}" Dream-Eaters\"\n}"
GUID: 5f9a10 GUID: 5f9a10
Grid: true Grid: true
GridProjection: false GridProjection: false

View File

@ -21,9 +21,9 @@ Description: Dreams of a Madman
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"06237\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n GMNotes: "{\n \"id\": \"06237\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n
\ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item.
Tome. Charm.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"maxCount\": Tome. Charm.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\": \"06113\"\n
1,\n \"id\": \"06113\"\n }\n ],\n \"willpowerIcons\": 1,\n \"combatIcons\": \ }\n ],\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": \"The
1,\n \"cycle\": \"The Dream-Eaters\"\n}" Dream-Eaters\"\n}"
GUID: e5f9cb GUID: e5f9cb
Grid: true Grid: true
GridProjection: false GridProjection: false

View File

@ -21,9 +21,9 @@ Description: Dreams of a Child
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"06238\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n GMNotes: "{\n \"id\": \"06238\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n
\ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item.
Tome. Charm.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"maxCount\": Tome. Charm.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\": \"06113\"\n
1,\n \"id\": \"06113\"\n }\n ],\n \"willpowerIcons\": 1,\n \"intellectIcons\": \ }\n ],\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The
1,\n \"cycle\": \"The Dream-Eaters\"\n}" Dream-Eaters\"\n}"
GUID: ea40f6 GUID: ea40f6
Grid: true Grid: true
GridProjection: false GridProjection: false

View File

@ -21,9 +21,8 @@ Description: Untranslated
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"06112\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n GMNotes: "{\n \"id\": \"06112\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n
\ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item.
Tome. Charm.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"maxCount\": Tome. Charm.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\": \"06113\"\n
1,\n \"id\": \"06113\"\n }\n ],\n \"willpowerIcons\": 1,\n \"cycle\": \ }\n ],\n \"willpowerIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}"
\"The Dream-Eaters\"\n}"
GUID: b81dcf GUID: b81dcf
Grid: true Grid: true
GridProjection: false GridProjection: false

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378946 CardID: 378955
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378948 CardID: 378957
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917434 CardID: 94749
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0
@ -35,7 +35,7 @@ LuaScript: ''
LuaScriptState: '' LuaScriptState: ''
MeasureMovement: false MeasureMovement: false
Name: Card Name: Card
Nickname: Elaborate Distraction Nickname: Elaborate Distraction (0)
SidewaysCard: false SidewaysCard: false
Snap: true Snap: true
Sticky: true Sticky: true

View File

@ -41,9 +41,6 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (
return require, loaded, register, modules return require, loaded, register, modules
end)(nil) end)(nil)
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
require("playercards/cards/EmpiricalHypothesis")
end)
__bundle_register("playercards/cards/EmpiricalHypothesis", function(require, _LOADED, __bundle_register, __bundle_modules) __bundle_register("playercards/cards/EmpiricalHypothesis", function(require, _LOADED, __bundle_register, __bundle_modules)
-- this helper creates buttons to help the user track which hypothesis has been chosen each round -- this helper creates buttons to help the user track which hypothesis has been chosen each round
-- (if user forgot to choose one at round start, the old one stays active) -- (if user forgot to choose one at round start, the old one stays active)
@ -691,14 +688,6 @@ do
end end
end end
-- Returns the position of the draw pile of the requested playmat
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
PlaymatApi.getDrawPosition = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do
return mat.call("returnGlobalDrawPosition")
end
end
-- Transforms a local position into a global position -- Transforms a local position into a global position
---@param localPos table Local position to be transformed ---@param localPos table Local position to be transformed
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All") ---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
@ -762,15 +751,6 @@ do
end end
end end
-- Returns the position for encounter card drawing
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
---@param stack boolean If true, returns the leftmost position instead of the first empty from the right
PlaymatApi.getEncounterCardDrawPosition = function(matColor, stack)
for _, mat in pairs(getMatForColor(matColor)) do
return Vector(mat.call("getEncounterCardDrawPosition", stack))
end
end
-- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If
-- matchTypes is true, the main card slot snap points will only snap assets, while the -- matchTypes is true, the main card slot snap points will only snap assets, while the
-- investigator area point will only snap Investigators. If matchTypes is false, snap points will -- investigator area point will only snap Investigators. If matchTypes is false, snap points will
@ -819,7 +799,7 @@ do
return count return count
end end
-- Updates the specified owned counter -- updates the specified owned counter
---@param matColor string Color of the playmat - White, Orange, Green, Red or All ---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param type string Counter to target ---@param type string Counter to target
---@param newValue number Value to set the counter to ---@param newValue number Value to set the counter to
@ -830,7 +810,7 @@ do
end end
end end
-- Triggers the draw function for the specified playmat -- triggers the draw function for the specified playmat
---@param matColor string Color of the playmat - White, Orange, Green, Red or All ---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param number number Amount of cards to draw ---@param number number Amount of cards to draw
PlaymatApi.drawCardsWithReshuffle = function(matColor, number) PlaymatApi.drawCardsWithReshuffle = function(matColor, number)
@ -839,7 +819,7 @@ do
end end
end end
-- Returns the resource counter amount -- returns the resource counter amount
---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All") ---@param matColor string Color of the playmat - White, Orange, Green or Red (does not support "All")
---@param type string Counter to target ---@param type string Counter to target
PlaymatApi.getCounterValue = function(matColor, type) PlaymatApi.getCounterValue = function(matColor, type)
@ -848,13 +828,15 @@ do
end end
end end
-- Returns a list of mat colors that have an investigator placed -- returns a list of mat colors that have an investigator placed
PlaymatApi.getUsedMatColors = function() PlaymatApi.getUsedMatColors = function()
local localInvestigatorPosition = { x = -1.17, y = 1, z = -0.01 } local localInvestigatorPosition = { x = -1.17, y = 1, z = -0.01 }
local usedColors = {} local usedColors = {}
for matColor, mat in pairs(getMatForColor("All")) do for matColor, mat in pairs(getMatForColor("All")) do
local searchPos = mat.positionToWorld(localInvestigatorPosition) local searchPos = mat.positionToWorld(localInvestigatorPosition)
local searchResult = searchLib.atPosition(searchPos, "isCardOrDeck") local searchResult = searchLib.atPosition(searchPos, "isCardOrDeck")
if #searchResult > 0 then if #searchResult > 0 then
table.insert(usedColors, matColor) table.insert(usedColors, matColor)
end end
@ -862,7 +844,7 @@ do
return usedColors return usedColors
end end
-- Resets the specified skill tracker to "1, 1, 1, 1" -- resets the specified skill tracker to "1, 1, 1, 1"
---@param matColor string Color of the playmat - White, Orange, Green, Red or All ---@param matColor string Color of the playmat - White, Orange, Green, Red or All
PlaymatApi.resetSkillTracker = function(matColor) PlaymatApi.resetSkillTracker = function(matColor)
for _, mat in pairs(getMatForColor(matColor)) do for _, mat in pairs(getMatForColor(matColor)) do
@ -870,7 +852,7 @@ do
end end
end end
-- Finds all objects on the playmat and associated set aside zone and returns a table -- finds all objects on the playmat and associated set aside zone and returns a table
---@param matColor string Color of the playmat - White, Orange, Green, Red or All ---@param matColor string Color of the playmat - White, Orange, Green, Red or All
---@param filter string Name of the filte function (see util/SearchLib) ---@param filter string Name of the filte function (see util/SearchLib)
PlaymatApi.searchAroundPlaymat = function(matColor, filter) PlaymatApi.searchAroundPlaymat = function(matColor, filter)
@ -909,7 +891,6 @@ do
return getObjectFromGUID("123456") return getObjectFromGUID("123456")
end end
-- Returns the matching object
---@param owner string Parent object for this search ---@param owner string Parent object for this search
---@param type string Type of object to search for ---@param type string Type of object to search for
---@return any: Object reference to the matching object ---@return any: Object reference to the matching object
@ -917,21 +898,21 @@ do
return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type }) return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type })
end end
-- Returns all matching objects as a table with references -- returns all matching objects as a table with references
---@param type string Type of object to search for ---@param type string Type of object to search for
---@return table: List of object references to matching objects ---@return table: List of object references to matching objects
GUIDReferenceApi.getObjectsByType = function(type) GUIDReferenceApi.getObjectsByType = function(type)
return getGuidHandler().call("getObjectsByType", type) return getGuidHandler().call("getObjectsByType", type)
end end
-- Returns all matching objects as a table with references -- returns all matching objects as a table with references
---@param owner string Parent object for this search ---@param owner string Parent object for this search
---@return table: List of object references to matching objects ---@return table: List of object references to matching objects
GUIDReferenceApi.getObjectsByOwner = function(owner) GUIDReferenceApi.getObjectsByOwner = function(owner)
return getGuidHandler().call("getObjectsByOwner", owner) return getGuidHandler().call("getObjectsByOwner", owner)
end end
-- Sends new information to the reference handler to edit the main index -- sends new information to the reference handler to edit the main index
---@param owner string Parent of the object ---@param owner string Parent of the object
---@param type string Type of the object ---@param type string Type of the object
---@param guid string GUID of the object ---@param guid string GUID of the object
@ -943,13 +924,6 @@ do
}) })
end end
-- Returns the owner of an object or the object it's located on
---@param object tts__GameObject Object for this search
---@return string: Parent of the object or object it's located on
GUIDReferenceApi.getOwnerOfObject = function(object)
return getGuidHandler().call("getOwnerOfObject", object)
end
return GUIDReferenceApi return GUIDReferenceApi
end end
end) end)
@ -1024,4 +998,7 @@ do
return SearchLib return SearchLib
end end
end) end)
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
require("playercards/cards/EmpiricalHypothesis")
end)
return __bundle_require("__root") return __bundle_require("__root")

View File

@ -21,10 +21,10 @@ Description: Abandoned by the Gods
DragSelectable: true DragSelectable: true
GMNotes: "{\n \"id\": \"06276\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n GMNotes: "{\n \"id\": \"06276\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n
\ \"class\": \"Guardian\",\n \"cost\": 1,\n \"level\": 4,\n \"traits\": \"Item. \ \"class\": \"Guardian\",\n \"cost\": 1,\n \"level\": 4,\n \"traits\": \"Item.
Relic. Blessed.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"maxCount\": Relic. Blessed.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\": \"06277\"\n
1,\n \"id\": \"06277\"\n }\n ],\n \"willpowerIcons\": 1,\n \"wildIcons\": \ }\n ],\n \"willpowerIcons\": 1,\n \"wildIcons\": 1,\n \"uses\": [\n {\n
1,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": \"Charge\",\n \"token\": \ \"count\": 0,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n
\"resource\"\n }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" \ }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}"
GUID: c0d236 GUID: c0d236
Grid: true Grid: true
GridProjection: false GridProjection: false

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378947 CardID: 378956
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378927 CardID: 378936
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378929 CardID: 378938
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917347 CardID: 94715
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917422 CardID: 94741
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378939 CardID: 378948
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,7 +3,7 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 378937 CardID: 378946
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
@ -12,7 +12,7 @@ CustomDeck:
'3789': '3789':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/ FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917425 CardID: 94744
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9174': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

View File

@ -3,16 +3,16 @@ AltLookAngle:
y: 0 y: 0
z: 0 z: 0
Autoraise: true Autoraise: true
CardID: 917331 CardID: 94710
ColorDiffuse: ColorDiffuse:
b: 0.71324 b: 0.71324
g: 0.71324 g: 0.71324
r: 0.71324 r: 0.71324
CustomDeck: CustomDeck:
'9173': '947':
BackIsHidden: true BackIsHidden: true
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/ BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
NumHeight: 7 NumHeight: 7
NumWidth: 10 NumWidth: 10
Type: 0 Type: 0

Some files were not shown because too many files have changed in this diff Show More