Compare commits
2 Commits
7a5ce98c41
...
d41b69bf4a
Author | SHA1 | Date | |
---|---|---|---|
d41b69bf4a | |||
f3c9f3af0b |
2778
unpacked.ttslua
2778
unpacked.ttslua
File diff suppressed because it is too large
Load Diff
94
unpacked.xml
94
unpacked.xml
@ -73,7 +73,6 @@
|
||||
|
||||
<!-- window to select downloadable content -->
|
||||
<VerticalLayout id="downloadWindow"
|
||||
visibility="Admin"
|
||||
color="black"
|
||||
active="false"
|
||||
height="800"
|
||||
@ -568,16 +567,13 @@
|
||||
<!-- Default formatting -->
|
||||
<Defaults>
|
||||
<Text color="#FFFFFF"
|
||||
alignment="MiddleLeft" />
|
||||
alignment="MiddleLeft"/>
|
||||
|
||||
<Toggle isOn="False"
|
||||
rectAlignment="MiddleRight" />
|
||||
|
||||
<Dropdown rectAlignment="MiddleCenter" />
|
||||
<Dropdown rectAlignment="MiddleCenter"/>
|
||||
|
||||
<Cell dontUseTableCellBackground="true"
|
||||
outlineSize="0 1"
|
||||
outline="grey" />
|
||||
outline="grey"/>
|
||||
|
||||
<!-- main window -->
|
||||
<TableLayout class="window"
|
||||
@ -589,20 +585,20 @@
|
||||
outline="grey"
|
||||
showAnimation="SlideIn_Right"
|
||||
hideAnimation="SlideOut_Right"
|
||||
animationDuration="0.2" />
|
||||
animationDuration="0.2"/>
|
||||
|
||||
<!-- group headers -->
|
||||
<Row class="group-header"
|
||||
preferredHeight="44" />
|
||||
preferredHeight="44"/>
|
||||
<Cell class="group-header"
|
||||
padding="10 10 0 0"
|
||||
columnSpan="3"
|
||||
color="#222222" />
|
||||
color="#222222"/>
|
||||
<Panel class="group-header"
|
||||
padding="5 0 0 0" />
|
||||
padding="5 0 0 0"/>
|
||||
<Text class="group-header"
|
||||
fontSize="28"
|
||||
font="font_teutonic-arkham" />
|
||||
font="font_teutonic-arkham"/>
|
||||
|
||||
<!-- options -->
|
||||
<Row class="option-text"
|
||||
@ -631,6 +627,14 @@
|
||||
font="font_teutonic-arkham"/>
|
||||
<Panel class="doubleColumn-wrapper"
|
||||
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 -->
|
||||
<Button class="bottomButtons"
|
||||
@ -652,7 +656,6 @@
|
||||
<!-- Option Panel -->
|
||||
<TableLayout id="optionPanel"
|
||||
class="window"
|
||||
visibility="Admin"
|
||||
rectAlignment="LowerRight"
|
||||
offsetXY="-50 80"
|
||||
raycastTarget="true">
|
||||
@ -718,8 +721,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="showTitleSplash"
|
||||
onValueChanged="onClick_toggleOption(showTitleSplash)"/>
|
||||
<Button class="optionToggle"
|
||||
id="showTitleSplash"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
@ -742,8 +746,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="playAreaSnapTags"
|
||||
onValueChanged="onClick_toggleOption(playAreaSnapTags)"/>
|
||||
<Button class="optionToggle"
|
||||
id="playAreaSnapTags"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
@ -756,8 +761,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="playAreaConnections"
|
||||
onValueChanged="onClick_toggleOption(playAreaConnections)"/>
|
||||
<Button class="optionToggle"
|
||||
id="playAreaConnections"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
@ -787,8 +793,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="changePlayAreaImage"
|
||||
onValueChanged="onClick_toggleOption(changePlayAreaImage)"/>
|
||||
<Button class="optionToggle"
|
||||
id="changePlayAreaImage"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
@ -811,8 +818,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="useSnapTags"
|
||||
onValueChanged="onClick_toggleOption(useSnapTags)"/>
|
||||
<Button class="optionToggle"
|
||||
id="useSnapTags"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
@ -825,8 +833,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="showDrawButton"
|
||||
onValueChanged="onClick_toggleOption(showDrawButton)"/>
|
||||
<Button class="optionToggle"
|
||||
id="showDrawButton"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
@ -839,8 +848,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="useClueClickers"
|
||||
onValueChanged="onClick_toggleOption(useClueClickers)"/>
|
||||
<Button class="optionToggle"
|
||||
id="useClueClickers"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
@ -905,8 +915,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="showAttachmentHelper"
|
||||
onValueChanged="onClick_toggleOption(showAttachmentHelper)"/>
|
||||
<Button class="optionToggle"
|
||||
id="showAttachmentHelper"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
@ -919,8 +930,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="showCleanUpHelper"
|
||||
onValueChanged="onClick_toggleOption(showCleanUpHelper)"/>
|
||||
<Button class="optionToggle"
|
||||
id="showCleanUpHelper"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
@ -933,8 +945,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="showCYOA"
|
||||
onValueChanged="onClick_toggleOption(showCYOA)"/>
|
||||
<Button class="optionToggle"
|
||||
id="showCYOA"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
@ -947,8 +960,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="showDisplacementTool"
|
||||
onValueChanged="onClick_toggleOption(showDisplacementTool)"/>
|
||||
<Button class="optionToggle"
|
||||
id="showDisplacementTool"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
@ -961,8 +975,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="showHandHelper"
|
||||
onValueChanged="onClick_toggleOption(showHandHelper)"/>
|
||||
<Button class="optionToggle"
|
||||
id="showHandHelper"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
|
||||
@ -975,8 +990,9 @@
|
||||
</Panel>
|
||||
</Cell>
|
||||
<Cell class="option-button">
|
||||
<Toggle id="showSearchAssistant"
|
||||
onValueChanged="onClick_toggleOption(showSearchAssistant)"/>
|
||||
<Button class="optionToggle"
|
||||
id="showSearchAssistant"
|
||||
onClick="onClick_toggleOption"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
</TableLayout>
|
||||
|
149
unpacked.yaml
149
unpacked.yaml
@ -80,24 +80,9 @@ ComponentTags:
|
||||
- displayed: CameraZoom_ignore
|
||||
normalized: camerazoom_ignore
|
||||
CustomUIAssets:
|
||||
- Name: refresh
|
||||
Type: 0
|
||||
URL: http://cloud-3.steamusercontent.com/ugc/1695031152736214852/EC3BBEF1A1788381A8F4C5ACB7FB27770CAF03C5/
|
||||
- Name: close
|
||||
Type: 0
|
||||
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
|
||||
Type: 0
|
||||
URL: http://cloud-3.steamusercontent.com/ugc/1782854877010106784/6E00433E3425D0A7C6121E0DDB6A79167BA78569/
|
||||
@ -113,24 +98,18 @@ CustomUIAssets:
|
||||
- Name: option-gear
|
||||
Type: 0
|
||||
URL: http://cloud-3.steamusercontent.com/ugc/2026086584372569912/5CB461AEAE2E59D3064D90A776EB86C46081EC78/
|
||||
- Name: font_birmingham
|
||||
- Name: option-on
|
||||
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
|
||||
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/
|
||||
URL: http://cloud-3.steamusercontent.com/ugc/2462982115649258367/C20CC4C299A6FE5F1ECAB968E15BE590337CC019/
|
||||
- Name: font_teutonic-arkham
|
||||
Type: 1
|
||||
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
|
||||
Type: 0
|
||||
URL: http://cloud-3.steamusercontent.com/ugc/2280574378889753624/53E7443E2A9957BC5CA4D73B67D5C1C30971C9F9/
|
||||
@ -152,15 +131,15 @@ CustomUIAssets:
|
||||
- Name: SpeechBubble
|
||||
Type: 0
|
||||
URL: https://i.imgur.com/6MReiEO.png
|
||||
- Name: Inv-Roland
|
||||
Type: 0
|
||||
URL: https://i.imgur.com/lx6unDY.png
|
||||
- Name: NextArrow
|
||||
Type: 0
|
||||
URL: https://i.imgur.com/MztSQis.png
|
||||
- Name: Exit
|
||||
Type: 0
|
||||
URL: https://i.imgur.com/8qmTXwt.png
|
||||
- Name: Inv-Roland
|
||||
Type: 0
|
||||
URL: https://i.imgur.com/lx6unDY.png
|
||||
- Name: Inv-Mandy
|
||||
Type: 0
|
||||
URL: https://i.imgur.com/hniMC5g.png
|
||||
@ -224,7 +203,34 @@ CustomUIAssets:
|
||||
- Name: box-cover-mask-wide
|
||||
Type: 0
|
||||
URL: http://cloud-3.steamusercontent.com/ugc/2115061298538827369/A20C2ECB8ECDC1B0AD8B2B38F68CA1C1F5E07D37/
|
||||
Date: Fri Feb 16 18:27:41 UTC 2024
|
||||
- Name: token-skull
|
||||
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:
|
||||
- ImageURL: http://cloud-3.steamusercontent.com/ugc/1474319121424323663/BC5570ECF747F1B30224461B576E8B0FE7FA5F33/
|
||||
Name: Achivement Checkmark
|
||||
@ -233,7 +239,7 @@ DecalPallet:
|
||||
Name: Victory Display
|
||||
Size: 15
|
||||
Decals: []
|
||||
EpochTime: 1708108061
|
||||
EpochTime: 1715512246
|
||||
GameComplexity: ''
|
||||
GameMode: Arkham Horror LCG - Super Complete Edition
|
||||
GameType: ''
|
||||
@ -284,7 +290,7 @@ Lighting:
|
||||
LutIndex: 0
|
||||
ReflectionIntensity: 1
|
||||
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":[],"showSearchAssistant":[],"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":false,"showSearchAssistant":false,"showTitleSplash":true,"useClueClickers":false,"useResourceCounters":"disabled","useSnapTags":true}}'
|
||||
MusicPlayer:
|
||||
AudioLibrary:
|
||||
- Item1: http://cloud-3.steamusercontent.com/ugc/784110538847453001/4481D1CC5684FCF04AB143954DEFE09E94BF5CEB/
|
||||
@ -514,7 +520,8 @@ ObjectStates:
|
||||
- !include 'unpacked/Custom_Model Decoration - Ammo b43845.yaml'
|
||||
- !include 'unpacked/Custom_Model Decoration - Ammo d35ee9.yaml'
|
||||
- !include 'unpacked/Custom_Token Victory Display 6ccd6d.yaml'
|
||||
- !include 'unpacked/Custom_Tile Campaign Overview e03c01.yaml'
|
||||
- !include 'unpacked/Custom_Tile Official Releases Overview 8e22bb.yaml'
|
||||
- !include 'unpacked/Custom_Tile Fan-Made Expansion Overview de7cae.yaml'
|
||||
- !include 'unpacked/Bag OptionPanel Source 830bd0.yaml'
|
||||
- !include 'unpacked/Custom_Assetbundle SoundCube 3c988f.yaml'
|
||||
- !include 'unpacked/go_game_piece_white Game Key Handler fce69c.yaml'
|
||||
@ -546,9 +553,7 @@ ObjectStates:
|
||||
- !include 'unpacked/Custom_Tile Tokencache_Curse 16a9a7.yaml'
|
||||
- !include 'unpacked/Custom_Tile Tokencache_Frost b2b7be.yaml'
|
||||
- !include 'unpacked/BlockSquare Physics Detector b300d8.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'
|
||||
- !include 'unpacked/Notecard Arkham SCE 3.8.0 - 5122024 - Page 1 bd6b3e.yaml'
|
||||
PlayArea: 1
|
||||
PlayerCounts:
|
||||
- 0
|
||||
@ -556,7 +561,7 @@ PlayerCounts:
|
||||
PlayingTime:
|
||||
- 0
|
||||
- 0
|
||||
SaveName: Arkham SCE - 3.6.0
|
||||
SaveName: Arkham SCE - 3.8.0
|
||||
Sky: Sky_Museum
|
||||
SkyURL: https://i.imgur.com/GkQqaOF.jpg
|
||||
SnapPoints:
|
||||
@ -624,70 +629,6 @@ SnapPoints:
|
||||
x: -3.85
|
||||
y: 1.58
|
||||
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:
|
||||
x: -56.24
|
||||
y: 1.49
|
||||
|
@ -41,9 +41,6 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (
|
||||
|
||||
return require, loaded, register, modules
|
||||
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)
|
||||
-- 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
|
||||
@ -145,6 +142,7 @@ do
|
||||
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
|
||||
@ -152,21 +150,21 @@ do
|
||||
return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type })
|
||||
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
|
||||
---@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
|
||||
-- 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
|
||||
-- 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
|
||||
@ -178,7 +176,17 @@ do
|
||||
})
|
||||
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("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
require("arkhamdb/HotfixBag")
|
||||
end)
|
||||
return __bundle_require("__root")
|
@ -41,6 +41,9 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (
|
||||
|
||||
return require, loaded, register, modules
|
||||
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)
|
||||
local cardIdIndex = { }
|
||||
local classAndLevelIndex = { }
|
||||
@ -101,73 +104,68 @@ function onObjectLeaveContainer(container, _)
|
||||
end
|
||||
end
|
||||
|
||||
-- Create the card indexes by iterating all cards in the bag, parsing their
|
||||
-- metadata, and creating the keyed lookup tables for the cards. This is a
|
||||
-- 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.
|
||||
-- Create the card indexes by iterating all cards in the bag, parsing their metadata
|
||||
-- and creating the keyed lookup tables for the cards. This is a coroutine which will
|
||||
-- spread the workload by processing 20 cards before yielding.
|
||||
function buildIndex()
|
||||
local cardCount = 0
|
||||
indexingDone = false
|
||||
if (self.getData().ContainedObjects == nil) then
|
||||
return 1
|
||||
end
|
||||
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
|
||||
if cardCount > 9 then
|
||||
cardCount = 0
|
||||
coroutine.yield(0)
|
||||
end
|
||||
|
||||
-- process the allcardsbag itself
|
||||
for _, cardData in ipairs(self.getData().ContainedObjects) do
|
||||
addCardToIndex(cardData)
|
||||
cardCount = cardCount + 1
|
||||
if cardCount > 19 then
|
||||
cardCount = 0
|
||||
coroutine.yield(0)
|
||||
end
|
||||
end
|
||||
local hotfixBags = getObjectsWithTag("AllCardsHotfix")
|
||||
for _, hotfixBag in ipairs(hotfixBags) do
|
||||
if (#hotfixBag.getObjects() > 0) then
|
||||
for i, cardData in ipairs(hotfixBag.getData().ContainedObjects) do
|
||||
if cardData.ContainedObjects then
|
||||
for j, deepCardData in ipairs(cardData.ContainedObjects) do
|
||||
local deepCardMetadata = JSON.decode(deepCardData.GMNotes)
|
||||
if deepCardMetadata ~= nil then
|
||||
addCardToIndex(deepCardData, deepCardMetadata)
|
||||
cardCount = cardCount + 1
|
||||
if cardCount > 9 then
|
||||
cardCount = 0
|
||||
coroutine.yield(0)
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
local cardMetadata = JSON.decode(cardData.GMNotes)
|
||||
if cardMetadata ~= nil then
|
||||
addCardToIndex(cardData, cardMetadata)
|
||||
cardCount = cardCount + 1
|
||||
if cardCount > 9 then
|
||||
cardCount = 0
|
||||
coroutine.yield(0)
|
||||
end
|
||||
|
||||
-- process hotfix bags (and the additional playercards bag)
|
||||
for _, hotfixBag in ipairs(getObjectsWithTag("AllCardsHotfix")) do
|
||||
local hotfixData = hotfixBag.getData()
|
||||
if not hotfixData.ContainedObjects then break end
|
||||
|
||||
for _, cardData in ipairs(hotfixData.ContainedObjects) do
|
||||
-- process containers
|
||||
if cardData.ContainedObjects then
|
||||
for _, deepCardData in ipairs(cardData.ContainedObjects) do
|
||||
addCardToIndex(deepCardData)
|
||||
cardCount = cardCount + 1
|
||||
if cardCount > 19 then
|
||||
cardCount = 0
|
||||
coroutine.yield(0)
|
||||
end
|
||||
end
|
||||
-- process single cards
|
||||
else
|
||||
addCardToIndex(cardData)
|
||||
cardCount = cardCount + 1
|
||||
if cardCount > 19 then
|
||||
cardCount = 0
|
||||
coroutine.yield(0)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
buildSupplementalIndexes()
|
||||
indexingDone = true
|
||||
return 1
|
||||
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 cardMetadata table SCED metadata for the card
|
||||
function addCardToIndex(cardData, cardMetadata)
|
||||
function addCardToIndex(cardData)
|
||||
-- using the more efficient 'json.parse()' to speed this process up
|
||||
local cardMetadata = json.parse(cardData.GMNotes)
|
||||
if not cardMetadata then return end
|
||||
|
||||
-- use the ZoopGuid as fallback if no id present
|
||||
if cardMetadata.id == nil and cardMetadata.TtsZoopGuid then
|
||||
cardMetadata.id = cardMetadata.TtsZoopGuid
|
||||
end
|
||||
cardIdIndex[cardMetadata.id] = { data = cardData, metadata = cardMetadata }
|
||||
if (cardMetadata.alternate_ids ~= nil) then
|
||||
cardIdIndex[cardMetadata.id or cardMetadata.TtsZoopGuid] = { data = cardData, metadata = cardMetadata }
|
||||
|
||||
-- also add data for alternate ids
|
||||
if cardMetadata.alternate_ids ~= nil then
|
||||
for _, alternateId in ipairs(cardMetadata.alternate_ids) do
|
||||
cardIdIndex[alternateId] = { data = cardData, metadata = cardMetadata }
|
||||
end
|
||||
@ -176,13 +174,10 @@ end
|
||||
|
||||
function buildSupplementalIndexes()
|
||||
for cardId, card in pairs(cardIdIndex) do
|
||||
local cardData = card.data
|
||||
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
|
||||
-- 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
|
||||
table.insert(uniqueWeaknessList, cardMetadata.id)
|
||||
if cardMetadata.basicWeaknessCount ~= nil then
|
||||
@ -192,56 +187,31 @@ function buildSupplementalIndexes()
|
||||
end
|
||||
end
|
||||
|
||||
-- Add the card to the appropriate class and level indexes
|
||||
local isGuardian = false
|
||||
local isSeeker = false
|
||||
local isMystic = false
|
||||
local isRogue = false
|
||||
local isSurvivor = false
|
||||
local isNeutral = false
|
||||
local upgradeKey
|
||||
-- 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
|
||||
-- Excludes signature cards (which have no class or level)
|
||||
if cardMetadata.class ~= nil and cardMetadata.level ~= nil then
|
||||
local upgradeKey
|
||||
if cardMetadata.level > 0 then
|
||||
upgradeKey = "-upgrade"
|
||||
else
|
||||
upgradeKey = "-level0"
|
||||
end
|
||||
if (isGuardian) then
|
||||
table.insert(classAndLevelIndex["Guardian"..upgradeKey], cardMetadata.id)
|
||||
end
|
||||
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)
|
||||
|
||||
-- parse classes (separated by "|") and add the card to the appropriate class and level indices
|
||||
for str in cardMetadata.class:gmatch("([^|]+)") do
|
||||
table.insert(classAndLevelIndex[str .. upgradeKey], cardMetadata.id)
|
||||
end
|
||||
|
||||
-- add to cycle index
|
||||
local cycleName = cardMetadata.cycle
|
||||
if cycleName ~= nil then
|
||||
cycleName = string.lower(cycleName)
|
||||
if string.match(cycleName, "return") then
|
||||
cycleName = string.sub(cycleName, 11)
|
||||
end
|
||||
if cycleName == "the night of the zealot" then
|
||||
cycleName = "core"
|
||||
end
|
||||
|
||||
-- remove "return to " from cycle names
|
||||
cycleName = cycleName:gsub("return to ", "")
|
||||
|
||||
-- override cycle name for night of the zealot
|
||||
cycleName = cycleName:gsub("the night of the zealot", "core")
|
||||
|
||||
if cycleIndex[cycleName] == nil then
|
||||
cycleIndex[cycleName] = { }
|
||||
end
|
||||
@ -250,29 +220,34 @@ function buildSupplementalIndexes()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- sort class and level indices
|
||||
for _, indexTable in pairs(classAndLevelIndex) do
|
||||
table.sort(indexTable, cardComparator)
|
||||
end
|
||||
|
||||
-- sort cycle indices
|
||||
for _, indexTable in pairs(cycleIndex) do
|
||||
table.sort(indexTable)
|
||||
end
|
||||
|
||||
-- sort weakness indices
|
||||
table.sort(basicWeaknessList, cardComparator)
|
||||
table.sort(uniqueWeaknessList, cardComparator)
|
||||
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)
|
||||
local card1 = cardIdIndex[id1]
|
||||
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
|
||||
end
|
||||
if (card1.data.Nickname ~= card2.data.Nickname) then
|
||||
elseif card1.data.Nickname ~= card2.data.Nickname then
|
||||
return card1.data.Nickname < card2.data.Nickname
|
||||
else
|
||||
return card1.data.Description < card2.data.Description
|
||||
end
|
||||
return card1.data.Description < card2.data.Description
|
||||
end
|
||||
|
||||
function isIndexReady()
|
||||
@ -414,7 +389,4 @@ function isBasicWeakness(cardMetadata)
|
||||
and cardMetadata.basicWeaknessCount > 0
|
||||
end
|
||||
end)
|
||||
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
require("playercards/AllCardsBag")
|
||||
end)
|
||||
return __bundle_require("__root")
|
@ -16,6 +16,11 @@ ContainedObjects:
|
||||
- !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 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 Finn Edwards dd40c0.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Monterey Jack 46b145.yaml'
|
||||
@ -25,47 +30,47 @@ ContainedObjects:
|
||||
46b147.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/CardCustom Book of Living Myths c5fb1f.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Weeping Yurei 541bd9.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Book of Living Myths c5fb1f.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card 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 54eaa7.yaml"
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Ad Hoc c9fb2f.yaml'
|
||||
- !include "Bag All Player Cards 15bb07/Card K\u014Dhaku Narukami 54eaa7.yaml"
|
||||
- !include 'Bag All Player Cards 15bb07/Card Ad Hoc c9fb2f.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 55eab5.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Ancestral Token c1fb1f.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Aetheric Current (Yoth) 84ad64.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Aetheric Current (Yuggoth) 84ad65.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Failed Experiment acd281.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Flux Stabilizer 55990a.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Kate Winthrop ce2322.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Wilson Richards 55eab5.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Ancestral Token c1fb1f.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Aetheric Current (Yoth) 84ad64.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Aetheric Current (Yuggoth) 84ad65.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Failed Experiment acd281.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Flux Stabilizer 55990a.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Kate Winthrop ce2322.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Kate Winthrop ce2323.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Hatchet (1) 2ea0d3.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Token of Faith (3) 2ea0d1.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Transmogrify 9965dd.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Absolution aef183.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Confound (3) 9965de.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Strong-Armed (1) 294d6.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Survival Technique (2) 2ea0d4.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Scrimshaw Charm c1fb2e.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Vamp (3) add233.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Well-Dressed c6ac33.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Hatchet (1) 2ea0d3.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Token of Faith (3) 2ea0d1.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Transmogrify 9965dd.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Absolution aef183.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Confound (3) 9965de.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Strong-Armed (1) 294d6.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Survival Technique (2) 2ea0d4.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Scrimshaw Charm c1fb2e.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Vamp (3) add233.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Well-Dressed c6ac33.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Fine Tuning (1) 103fbd.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Prismatic Spectacles (2) 3adcf5.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Drain Essence 9965aa.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Fake Credentials acd38d.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Cat Mask 847ed6.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Prismatic Spectacles (2) 3adcf5.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Drain Essence 9965aa.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Fake Credentials acd38d.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Cat Mask 847ed6.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 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) 5294c3.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Eldritch Tongue e8765a.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Eldritch Tongue e8765a.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/CardCustom False Surrender adf28e.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Purified 294d6a.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom The Key of Solomon (4) ae54c6.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card False Surrender adf28e.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card 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 Necronomicon 5b2e10.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'
|
||||
@ -1505,6 +1510,11 @@ ContainedObjects:
|
||||
- !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/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 Isamara Ordo\xF1ez 860cd7.yaml"
|
||||
- !include 'Bag All Player Cards 15bb07/Card Jenny Barnes 48b174.yaml'
|
||||
@ -1538,7 +1548,7 @@ ContainedObjects:
|
||||
- !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 Lola Hayes (Taboo) 52956d.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Rex Murphy (Taboo) 0a5491.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom 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 Power Word Upgrade Sheet (Taboo) ebce85.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Prophesiae Profana (5) (Taboo) 957c32.yaml'
|
||||
@ -1617,77 +1627,77 @@ ContainedObjects:
|
||||
- !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/CardCustom The Beyond 37ab47.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Devil (2) 2a0ba5.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Devil (2) 2a0ba5.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi cea425.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi 54eaa5.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Zamacona 541ba9.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Wicked Athame c9fb1f.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Wolf Mask 975d89.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Beguile 019526.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Ofuda 860c1e.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Providential (2) 2cf42a.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Vamp add232.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom I''ll Pay You Back! 40e1ca.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Occult Reliquary (3) acd0c2.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Grift df75d7.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Guided by Faith aef282.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Alessandra Zorzi 54eaa5.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Zamacona 541ba9.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Wicked Athame c9fb1f.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Wolf Mask 975d89.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Beguile 019526.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Ofuda 860c1e.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Providential (2) 2cf42a.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Vamp add232.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card 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/Card Grift df75d7.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card 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 3764cd.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Hank Samson (Assistant) 3764ce.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Hank Samson (Warden) 3764cf.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Hold Up aef182.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Pelt Shipment aa11bc.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Stir the Pot (5) add252.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Snitch (2) add242.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Hank Samson 3764cd.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Hank Samson (Assistant) 3764ce.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Hank Samson (Warden) 3764cf.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Hold Up aef182.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Pelt Shipment aa11bc.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Stir the Pot (5) add252.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Snitch (2) add242.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Where''s Pa 9aba43.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Persistence (1) 2cf51.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Stouthearted 265ad2.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Control Variable 133868.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Blackmail File de456d.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Speak to the Dead c763aa.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Accursed e91c5e.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Throw the Book at Them! d617ab.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Fox Mask 4144cd.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/CardCustom Mouse Mask 32ad21.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Task Force (0) a5c06a.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Persistence (1) 2cf51.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Stouthearted 265ad2.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Control Variable 133868.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Blackmail File de456d.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Speak to the Dead c763aa.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Accursed e91c5e.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Throw the Book at Them! d617ab.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Fox Mask 4144cd.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Mouse Mask 32ad21.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Task Force a5c06a.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 Lightfooted (0) fe1fb6.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Lightfooted fe1fb6.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 British Bull Dog (2) 7b7050.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Bianca Die Katz (0) 897a94.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Bianca Die Katz 897a94.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 Katana (0) f5beb5.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Katana f5beb5.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 Ravenous Myconid (4) df93ca.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 Stir the Pot (0) c25479.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Stir the Pot c25479.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Keeper of the Key 014086.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Bide Your Time (0) 24d3b3.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Thorough Inquiry (0) c6b644.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Bide Your Time 24d3b3.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Thorough Inquiry c6b644.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 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 Mariner''s Compass (2) 596053.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Bank Job (0) c4dfa2.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Bank Job c4dfa2.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 Testing Sprint (0) a4846b.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Testing Sprint a4846b.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 Gabriel Carillo (1) 7e1088.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Diabolical Luck (0) 1fea59.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Cleaning Kit (0) d07668.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Diabolical Luck 1fea59.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Cleaning Kit d07668.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Evanescent Ascension 9e763b.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Matchbox (0) b533db.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card British Bull Dog (0) 9b76a0.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Matchbox b533db.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card British Bull Dog 9b76a0.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Twilight Diadem a2f8f8.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Rod of Carnamagos (0) 66ec64.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Rod of Carnamagos 66ec64.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 Cleaning Kit (3) 94c3e1.yaml'
|
||||
@ -1696,7 +1706,7 @@ ContainedObjects:
|
||||
- !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 Dark Horse (5) d00e4d.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Antediluvian Hymn (0) ba4746.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Antediluvian Hymn ba4746.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 Scarlet Rot fe476c.yaml'
|
||||
@ -1711,7 +1721,16 @@ ContainedObjects:
|
||||
- !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 Read the Signs (2) 5ce4d4.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Elaborate Distraction (0) d1422e.yaml'
|
||||
- !include 'Bag All Player Cards 15bb07/Card Elaborate Distraction 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: ''
|
||||
DragSelectable: true
|
||||
GMNotes: ''
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 125300
|
||||
CardID: 917316
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'1253':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186529136565/AE4B753BBB284EB12A0BDE36CEA3CD763C835AC0/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
@ -33,7 +33,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Absolution
|
||||
SidewaysCard: false
|
||||
Snap: true
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94732
|
||||
CardID: 917408
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 20100
|
||||
CardID: 917417
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'201':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009070977509/27A8CCF2BC48CAD909180D64177E86B8232F66C6/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
@ -33,7 +33,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Accursed
|
||||
SidewaysCard: false
|
||||
Snap: true
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 9100
|
||||
CardID: 917300
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'91':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2223150865961116295/72473371D0DB68709B4B1B9343A748510A1BB30A/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
@ -33,7 +33,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Ad Hoc
|
||||
SidewaysCard: false
|
||||
Snap: true
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94733
|
||||
CardID: 917409
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 1700
|
||||
CardID: 917303
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'17':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008875866961/175F57B97C6DEC14F1F6E6420A318A76D38FFE8A/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
@ -33,7 +33,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Aetheric Current (Yoth)
|
||||
SidewaysCard: false
|
||||
Snap: true
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 12700
|
||||
CardID: 917302
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'127':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008875867121/DD34A54C059F9DE340A3C54406A276D202D1C329/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
@ -33,7 +33,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Aetheric Current (Yuggoth)
|
||||
SidewaysCard: false
|
||||
Snap: true
|
56
unpacked/Bag All Player Cards 15bb07/Card Ajax f8a7c6.yaml
Normal file
56
unpacked/Bag All Player Cards 15bb07/Card Ajax f8a7c6.yaml
Normal file
@ -0,0 +1,56 @@
|
||||
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: ''
|
@ -3,20 +3,20 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 1100
|
||||
CardID: 117303
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'11':
|
||||
'1173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2172484009071330094/3AEFB558D789BC525F50DCC0217FA17627EB91BF/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009071330266/6DD06B74E6DD4F473AB47C39DD17DF9FAD8B1455/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430631817/A15FFE0907238AB578CFEB119974545A4408E3A1/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430631996/4C0628EA8BAEB615CBF9575C1B2F0389EED9C4B7/
|
||||
NumHeight: 2
|
||||
NumWidth: 4
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
UniqueBack: true
|
||||
Description: The Countess
|
||||
DragSelectable: true
|
||||
GMNotes: "{\n \"id\": \"10009\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n
|
||||
@ -39,7 +39,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Alessandra Zorzi
|
||||
SidewaysCard: true
|
||||
Snap: true
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 4900
|
||||
CardID: 917311
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'49':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2279447674651244606/B2275AD213AF8DD0B65170BD4E5E5E98E233A6C7/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
@ -34,7 +34,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Ancestral Token
|
||||
SidewaysCard: false
|
||||
Snap: true
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94737
|
||||
CardID: 917415
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
@ -35,7 +35,7 @@ LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: Card
|
||||
Nickname: Antediluvian Hymn (0)
|
||||
Nickname: Antediluvian Hymn
|
||||
SidewaysCard: false
|
||||
Snap: true
|
||||
Sticky: true
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 378962
|
||||
CardID: 378953
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 378917
|
||||
CardID: 378959
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
@ -21,7 +21,8 @@ Description: Basic Weakness
|
||||
DragSelectable: true
|
||||
GMNotes: "{\n \"id\": \"08130\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n
|
||||
\ \"traits\": \"Injury.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n
|
||||
\ \"cycle\": \"Edge of the Earth\"\n}"
|
||||
\ \"uses\": [\n {\n \"count\": 1,\n \"type\": \"Damage\",\n \"token\":
|
||||
\"damage\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}"
|
||||
GUID: 8f1420
|
||||
Grid: true
|
||||
GridProjection: false
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94760
|
||||
CardID: 917458
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94723
|
||||
CardID: 917361
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
@ -35,7 +35,7 @@ LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: Card
|
||||
Nickname: Bank Job (0)
|
||||
Nickname: Bank Job
|
||||
SidewaysCard: false
|
||||
Snap: true
|
||||
Sticky: true
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 200
|
||||
CardID: 917305
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'2':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009071331078/3553DC91D67F802BAFFE9F674DBE991C2D439867/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
@ -33,7 +33,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Beguile
|
||||
SidewaysCard: false
|
||||
Snap: true
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94728
|
||||
CardID: 917401
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,28 +3,28 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94720
|
||||
CardID: 917354
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: Singing Your Songs
|
||||
Description: Singing Your Song
|
||||
DragSelectable: true
|
||||
GMNotes: "{\n \"id\": \"10062\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n
|
||||
\ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Ally.
|
||||
Criminal. Socialite.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\":
|
||||
\"10063\"\n }\n ],\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\":
|
||||
10,\n \"type\": \"Resource\",\n \"token\": \"resource\"\n }\n ],\n
|
||||
\ \"cycle\": \"The Feast of Hemlock Vale\"\n}"
|
||||
Criminal. Socialite.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"maxCount\":
|
||||
1,\n \"id\": \"10063\"\n }\n ],\n \"agilityIcons\": 1,\n \"uses\": [\n
|
||||
\ {\n \"count\": 10,\n \"type\": \"Resource\",\n \"token\": \"resource\"\n
|
||||
\ }\n ],\n \"cycle\": \"The Feast of Hemlock Vale\"\n}"
|
||||
GUID: 897a94
|
||||
Grid: true
|
||||
GridProjection: false
|
||||
@ -37,7 +37,7 @@ LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: Card
|
||||
Nickname: Bianca "Die Katz" (0)
|
||||
Nickname: Bianca "Die Katz"
|
||||
SidewaysCard: false
|
||||
Snap: true
|
||||
Sticky: true
|
@ -3,21 +3,21 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94721
|
||||
CardID: 917355
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
Description: Enemy
|
||||
DragSelectable: true
|
||||
GMNotes: "{\n \"id\": \"10063\",\n \"type\": \"Enemy\",\n \"traits\": \"Humanoid.
|
||||
Criminal. Socialite.\",\n \"victory\": 0,\n \"cycle\": \"The Feast of Hemlock
|
||||
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94755
|
||||
CardID: 917451
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
@ -34,7 +34,7 @@ LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: Card
|
||||
Nickname: Bide Your Time (0)
|
||||
Nickname: Bide Your Time
|
||||
SidewaysCard: false
|
||||
Snap: true
|
||||
Sticky: true
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 9400
|
||||
CardID: 917356
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'94':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2195002645128569861/7143A7BF20E37A069E170A21D77C16C91D81374D/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
@ -33,7 +33,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Blackmail File
|
||||
SidewaysCard: false
|
||||
Snap: true
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94707
|
||||
CardID: 917328
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94705
|
||||
CardID: 917326
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 378947
|
||||
CardID: 378938
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 378949
|
||||
CardID: 378940
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -11,8 +11,8 @@ ColorDiffuse:
|
||||
CustomDeck:
|
||||
'3795':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/1625226898126523297/2C981A8D79F76E3533ADD355F8AF406EA72B5162/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126522542/E29FEBE196344F3DEE457BE957E9AF18310C6F39/
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578166/C21CC0E4ADE06C11419F36BAEDED0BDBFF8DE5E3/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578395/F97B770FB90EA18B46F58614CCE0016406E3E777/
|
||||
NumHeight: 2
|
||||
NumWidth: 5
|
||||
Type: 0
|
||||
|
@ -41,6 +41,119 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (
|
||||
|
||||
return require, loaded, register, modules
|
||||
end)(nil)
|
||||
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
require("playercards/cards/BookofLivingMyths")
|
||||
end)
|
||||
__bundle_register("playercards/cards/BookofLivingMyths", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
local chaosBagApi = require("chaosbag/ChaosBagApi")
|
||||
local guidReferenceApi = require("core/GUIDReferenceApi")
|
||||
local playmatApi = require("playermat/PlaymatApi")
|
||||
|
||||
function onLoad(savedData)
|
||||
self.addContextMenuItem("Enable Helper", createButtons)
|
||||
if savedData ~= "" then
|
||||
local loadedData = JSON.decode(savedData)
|
||||
if loadedData.loopId then
|
||||
createButtons()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function deleteButtons()
|
||||
self.clearContextMenu()
|
||||
self.addContextMenuItem("Enable Helper", createButtons)
|
||||
self.UI.setAttribute("inactives", "active", false)
|
||||
self.UI.setAttribute("actives", "active", false)
|
||||
if loopId then Wait.stop(loopId) end
|
||||
loopId = nil
|
||||
self.script_state = JSON.encode({ loopId = loopId })
|
||||
end
|
||||
|
||||
-- create buttons and begin monitoring chaos bag for curse and bless tokens
|
||||
function createButtons()
|
||||
self.clearContextMenu()
|
||||
self.addContextMenuItem("Clear Helper", deleteButtons)
|
||||
self.UI.setAttribute("inactives", "active", true)
|
||||
self.UI.setAttribute("actives", "active", true)
|
||||
loopId = Wait.time(maybeUpdateButtonState, 1, -1)
|
||||
self.script_state = JSON.encode({ loopId = loopId })
|
||||
end
|
||||
|
||||
function resolveToken(player, _, tokenType)
|
||||
local matColor
|
||||
if player.color == "Black" then
|
||||
matColor = playmatApi.getMatColorByPosition(self.getPosition())
|
||||
else
|
||||
matColor = playmatApi.getMatColor(player.color)
|
||||
end
|
||||
|
||||
local mat = guidReferenceApi.getObjectByOwnerAndType(matColor, "Playermat")
|
||||
chaosBagApi.drawChaosToken(mat, true, tokenType)
|
||||
end
|
||||
|
||||
-- count tokens in the bag and show appropriate buttons
|
||||
function maybeUpdateButtonState()
|
||||
local numInBag = getBlessCurseInBag()
|
||||
local state = { Bless = false, Curse = false }
|
||||
|
||||
if numInBag.Bless >= numInBag.Curse and numInBag.Bless > 0 then
|
||||
state.Bless = true
|
||||
end
|
||||
|
||||
if numInBag.Curse >= numInBag.Bless and numInBag.Curse > 0 then
|
||||
state.Curse = true
|
||||
end
|
||||
|
||||
setUiState(state)
|
||||
end
|
||||
|
||||
function getBlessCurseInBag()
|
||||
local numInBag = { Bless = 0, Curse = 0 }
|
||||
local chaosBag = chaosBagApi.findChaosBag()
|
||||
|
||||
for _, v in ipairs(chaosBag.getObjects()) do
|
||||
if v.name == "Bless" then
|
||||
numInBag.Bless = numInBag.Bless + 1
|
||||
elseif v.name == "Curse" then
|
||||
numInBag.Curse = numInBag.Curse + 1
|
||||
end
|
||||
end
|
||||
|
||||
return numInBag
|
||||
end
|
||||
|
||||
function setUiState(params)
|
||||
-- set bless state
|
||||
if params.Bless then
|
||||
self.UI.show("Bless")
|
||||
self.UI.hide("inactiveBless")
|
||||
else
|
||||
self.UI.show("inactiveBless")
|
||||
self.UI.hide("Bless")
|
||||
end
|
||||
|
||||
-- set curse state
|
||||
if params.Curse then
|
||||
self.UI.show("Curse")
|
||||
self.UI.hide("inactiveCurse")
|
||||
else
|
||||
self.UI.show("inactiveCurse")
|
||||
self.UI.hide("Curse")
|
||||
end
|
||||
end
|
||||
|
||||
function errorMessage()
|
||||
local numInBag = getBlessCurseInBag()
|
||||
|
||||
if numInBag.Bless == 0 and numInBag.Curse == 0 then
|
||||
broadcastToAll("There are no Bless or Curse tokens in the chaos bag.", "Red")
|
||||
elseif numInBag.Bless > numInBag.Curse then
|
||||
broadcastToAll("There are more Bless tokens than Curse tokens in the chaos bag.", "Red")
|
||||
else
|
||||
broadcastToAll("There are more Curse tokens than Bless tokens in the chaos bag.", "Red")
|
||||
end
|
||||
end
|
||||
end)
|
||||
__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
do
|
||||
local ChaosBagApi = {}
|
||||
@ -115,8 +228,9 @@ do
|
||||
---@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 guidToBeResolved? string GUID of the sealed token to be resolved instead of drawing a token from the bag
|
||||
ChaosBagApi.drawChaosToken = function(mat, drawAdditional, tokenType, guidToBeResolved)
|
||||
return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional, tokenType = tokenType, guidToBeResolved = guidToBeResolved})
|
||||
---@param returnedToken? tts__Object Token to be replaced with newly drawn token
|
||||
ChaosBagApi.drawChaosToken = function(mat, drawAdditional, tokenType, guidToBeResolved, returnedToken)
|
||||
return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional, tokenType = tokenType, guidToBeResolved = guidToBeResolved, returnedToken = returnedToken})
|
||||
end
|
||||
|
||||
-- returns a Table List of chaos token ids in the current chaos bag
|
||||
@ -136,6 +250,7 @@ do
|
||||
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
|
||||
@ -143,21 +258,21 @@ do
|
||||
return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type })
|
||||
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
|
||||
---@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
|
||||
-- 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
|
||||
-- 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
|
||||
@ -169,6 +284,13 @@ do
|
||||
})
|
||||
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)
|
||||
@ -254,6 +376,14 @@ do
|
||||
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")
|
||||
@ -317,6 +447,15 @@ do
|
||||
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
|
||||
@ -365,7 +504,7 @@ do
|
||||
return count
|
||||
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 type string Counter to target
|
||||
---@param newValue number Value to set the counter to
|
||||
@ -376,7 +515,7 @@ do
|
||||
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 number number Amount of cards to draw
|
||||
PlaymatApi.drawCardsWithReshuffle = function(matColor, number)
|
||||
@ -385,7 +524,7 @@ do
|
||||
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 type string Counter to target
|
||||
PlaymatApi.getCounterValue = function(matColor, type)
|
||||
@ -394,15 +533,13 @@ do
|
||||
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()
|
||||
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
|
||||
@ -410,7 +547,7 @@ do
|
||||
return usedColors
|
||||
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
|
||||
PlaymatApi.resetSkillTracker = function(matColor)
|
||||
for _, mat in pairs(getMatForColor(matColor)) do
|
||||
@ -418,7 +555,7 @@ do
|
||||
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 filter string Name of the filte function (see util/SearchLib)
|
||||
PlaymatApi.searchAroundPlaymat = function(matColor, filter)
|
||||
@ -520,113 +657,4 @@ do
|
||||
return SearchLib
|
||||
end
|
||||
end)
|
||||
__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
require("playercards/cards/BookofLivingMyths")
|
||||
end)
|
||||
__bundle_register("playercards/cards/BookofLivingMyths", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
local chaosBagApi = require("chaosbag/ChaosBagApi")
|
||||
local guidReferenceApi = require("core/GUIDReferenceApi")
|
||||
local playmatApi = require("playermat/PlaymatApi")
|
||||
|
||||
function onSave()
|
||||
return JSON.encode({ loopId = loopId })
|
||||
end
|
||||
|
||||
function onLoad(savedData)
|
||||
self.addContextMenuItem("Enable Helper", createButtons)
|
||||
if savedData ~= "" then
|
||||
local loadedData = JSON.decode(savedData)
|
||||
if loadedData.loopId then
|
||||
createButtons()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function deleteButtons()
|
||||
self.UI.setAttribute("inactives", "active", false)
|
||||
self.UI.setAttribute("actives", "active", false)
|
||||
self.clearContextMenu()
|
||||
self.addContextMenuItem("Enable Helper", createButtons)
|
||||
Wait.stop(loopId)
|
||||
loopId = nil
|
||||
end
|
||||
|
||||
-- Create buttons and begin monitoring chaos bag for curse and bless tokens
|
||||
function createButtons()
|
||||
self.clearContextMenu()
|
||||
self.addContextMenuItem("Clear Helper", deleteButtons)
|
||||
self.UI.setAttribute("inactives", "active", true)
|
||||
self.UI.setAttribute("actives", "active", true)
|
||||
self.UI.show("inactiveBless")
|
||||
self.UI.show("inactiveCurse")
|
||||
self.UI.hide("Bless")
|
||||
self.UI.hide("Curse")
|
||||
currentState = "Empty"
|
||||
loopId = Wait.time(countBlessCurse, 1, -1)
|
||||
end
|
||||
|
||||
function resolveToken(_, _, tokenType)
|
||||
local closestMatColor = playmatApi.getMatColorByPosition(self.getPosition())
|
||||
local mat = guidReferenceApi.getObjectByOwnerAndType(closestMatColor, "Playermat")
|
||||
chaosBagApi.drawChaosToken(mat, true, tokenType)
|
||||
end
|
||||
|
||||
-- count tokens in the bag and show appropriate buttons
|
||||
function countBlessCurse()
|
||||
local numInBag = { Bless = 0, Curse = 0 }
|
||||
local chaosBag = chaosBagApi.findChaosBag()
|
||||
local tokens = {}
|
||||
for _, v in ipairs(chaosBag.getObjects()) do
|
||||
if v.name == "Bless" then
|
||||
numInBag.Bless = numInBag.Bless + 1
|
||||
elseif v.name == "Curse" then
|
||||
numInBag.Curse = numInBag.Curse + 1
|
||||
end
|
||||
end
|
||||
|
||||
if numInBag.Bless > numInBag.Curse then
|
||||
if currentState ~= "More Bless" then
|
||||
self.UI.show("Bless")
|
||||
self.UI.hide("inactiveBless")
|
||||
self.UI.show("inactiveCurse")
|
||||
self.UI.hide("Curse")
|
||||
end
|
||||
currentState = "More Bless"
|
||||
elseif numInBag.Curse > numInBag.Bless then
|
||||
if currentState ~= "More Curse" then
|
||||
self.UI.show("Curse")
|
||||
self.UI.hide("inactiveCurse")
|
||||
self.UI.show("inactiveBless")
|
||||
self.UI.hide("Bless")
|
||||
end
|
||||
currentState = "More Curse"
|
||||
elseif numInBag.Curse == 0 then
|
||||
if currentState ~= "Empty" then
|
||||
self.UI.show("inactiveBless")
|
||||
self.UI.hide("Bless")
|
||||
self.UI.show("inactiveCurse")
|
||||
self.UI.hide("Curse")
|
||||
end
|
||||
currentState = "Empty"
|
||||
else
|
||||
if currentState ~= "Equal" then
|
||||
self.UI.show("Bless")
|
||||
self.UI.hide("inactiveBless")
|
||||
self.UI.show("Curse")
|
||||
self.UI.hide("inactiveCurse")
|
||||
end
|
||||
currentState = "Equal"
|
||||
end
|
||||
end
|
||||
|
||||
function errorMessage ()
|
||||
if currentState == "Empty" then
|
||||
broadcastToAll("There are no Bless or Curse tokens in the chaos bag.","Red")
|
||||
elseif currentState == "More Bless" then
|
||||
broadcastToAll("There are more Bless tokens than Curse tokens in the chaos bag.","Red")
|
||||
else
|
||||
broadcastToAll("There are more Curse tokens than Bless tokens in the chaos bag.","Red")
|
||||
end
|
||||
end
|
||||
end)
|
||||
return __bundle_require("__root")
|
@ -4,10 +4,20 @@
|
||||
font="font_teutonic-arkham"
|
||||
fontSize="300"
|
||||
iconWidth="400"
|
||||
iconAlignment="Right"/>
|
||||
iconAlignment="Right"
|
||||
text="Resolve"/>
|
||||
<Button class="inactive"
|
||||
onClick="errorMessage"
|
||||
color="#353535E6"
|
||||
textColor="#A0A0A0"/>
|
||||
<Button class="active"
|
||||
onClick="resolveToken"
|
||||
textColor="white"
|
||||
active="false"/>
|
||||
<Panel position="0 -55 -22"
|
||||
rotation="0 0 180"
|
||||
height="900" width="1400"
|
||||
height="900"
|
||||
width="1400"
|
||||
scale="0.1 0.1 1"/>
|
||||
<TableLayout active="false"
|
||||
cellSpacing="80"
|
||||
@ -18,14 +28,18 @@
|
||||
<TableLayout id="actives">
|
||||
<Row>
|
||||
<Cell>
|
||||
<Button id="Bless" icon="bless" textColor="White"
|
||||
onClick="resolveToken" color="#9D702CE6" iconAlignment="Right">Resolve</Button>
|
||||
<Button id="Bless"
|
||||
icon="bless"
|
||||
color="#9D702CE6"
|
||||
class="active"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
<Row>
|
||||
<Cell>
|
||||
<Button id="Curse" icon="curse" textColor="White"
|
||||
onClick="resolveToken" color="#633A84E6">Resolve</Button>
|
||||
<Button id="Curse"
|
||||
icon="curse"
|
||||
color="#633A84E6"
|
||||
class="active"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
</TableLayout>
|
||||
@ -35,14 +49,16 @@
|
||||
<TableLayout id="inactives">
|
||||
<Row>
|
||||
<Cell>
|
||||
<Button id="inactiveBless" icon="bless" textColor="#A0A0A0"
|
||||
onClick="errorMessage" color="#353535E6">Resolve</Button>
|
||||
<Button id="inactiveBless"
|
||||
icon="bless"
|
||||
class="inactive"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
<Row>
|
||||
<Cell>
|
||||
<Button id="inactiveCurse" icon="curse" textColor="#A0A0A0"
|
||||
onClick="errorMessage" color="#353535E6">Resolve</Button>
|
||||
<Button id="inactiveCurse"
|
||||
icon="curse"
|
||||
class="inactive"/>
|
||||
</Cell>
|
||||
</Row>
|
||||
</TableLayout>
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 8500
|
||||
CardID: 917307
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'85':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2279447041528306779/F60D99AAA35122A9553F0B5FD736DB6FB73BE7EF/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
CustomUIAssets:
|
||||
@ -41,10 +41,10 @@ HideWhenFaceDown: true
|
||||
IgnoreFoW: false
|
||||
LayoutGroupSortIndex: 0
|
||||
Locked: false
|
||||
LuaScript: !include 'CardCustom Book of Living Myths c5fb1f.ttslua'
|
||||
LuaScript: !include 'Card Book of Living Myths c5fb1f.ttslua'
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Book of Living Myths
|
||||
SidewaysCard: false
|
||||
Snap: true
|
||||
@ -64,4 +64,4 @@ Transform:
|
||||
scaleY: 1
|
||||
scaleZ: 1
|
||||
Value: 0
|
||||
XmlUI: !include 'CardCustom Book of Living Myths c5fb1f.xml'
|
||||
XmlUI: !include 'Card Book of Living Myths c5fb1f.xml'
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 378928
|
||||
CardID: 378919
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 378930
|
||||
CardID: 378921
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94727
|
||||
CardID: 917369
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94722
|
||||
CardID: 917357
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
@ -36,7 +36,7 @@ LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: Card
|
||||
Nickname: British Bull Dog (0)
|
||||
Nickname: British Bull Dog
|
||||
SidewaysCard: false
|
||||
Snap: true
|
||||
Sticky: true
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94757
|
||||
CardID: 917455
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
@ -21,9 +21,10 @@ Description: Crown of Dying Light
|
||||
DragSelectable: true
|
||||
GMNotes: "{\n \"id\": \"10133\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n
|
||||
\ \"cost\": 1,\n \"level\": 5,\n \"traits\": \"Item. Charm. Mask.\",\n \"bonded\":
|
||||
[\n {\n \"count\": 1,\n \"id\": \"10134\"\n }\n ],\n \"wildIcons\":
|
||||
1,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": \"Offering\",\n \"token\":
|
||||
\"resource\"\n }\n ],\n \"cycle\": \"The Feast of Hemlock Vale\"\n}"
|
||||
[\n {\n \"count\": 1,\n \"maxCount\": 1,\n \"id\": \"10134\"\n
|
||||
\ }\n ],\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 0,\n \"type\":
|
||||
\"Offering\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Feast
|
||||
of Hemlock Vale\"\n}"
|
||||
GUID: b6d35d
|
||||
Grid: true
|
||||
GridProjection: false
|
||||
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 378960
|
||||
CardID: 378951
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 379007
|
||||
CardID: 379006
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 379006
|
||||
CardID: 379005
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 378916
|
||||
CardID: 378958
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94740
|
||||
CardID: 917421
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 40300
|
||||
CardID: 917406
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'403':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186559601365/6C247C82793481C97E24F74A26AF905E3B708C50/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: The Capricious Meddler
|
||||
@ -35,7 +35,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Cat Mask
|
||||
SidewaysCard: false
|
||||
Snap: true
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 12102
|
||||
CardID: 917332
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'121':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/
|
||||
NumHeight: 2
|
||||
NumWidth: 6
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94704
|
||||
CardID: 917325
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94700
|
||||
CardID: 917312
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
@ -36,7 +36,7 @@ LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: Card
|
||||
Nickname: Cleaning Kit (0)
|
||||
Nickname: Cleaning Kit
|
||||
SidewaysCard: false
|
||||
Snap: true
|
||||
Sticky: true
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 124100
|
||||
CardID: 917349
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'1241':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186529136671/AC1530FE71D9E5CF4F816A488E07076AC8064BD8/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
@ -33,7 +33,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Confound (3)
|
||||
SidewaysCard: false
|
||||
Snap: true
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 34200
|
||||
CardID: 917338
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'342':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009070977979/A629DD5733453F892F57514EC5950E087486896F/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
@ -34,7 +34,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Control Variable
|
||||
SidewaysCard: false
|
||||
Snap: true
|
@ -0,0 +1,57 @@
|
||||
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: ''
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 378961
|
||||
CardID: 378952
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -21,8 +21,9 @@ Description: ''
|
||||
DragSelectable: true
|
||||
GMNotes: "{\n \"id\": \"06024\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n
|
||||
\ \"class\": \"Rogue\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item.
|
||||
Relic.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\": \"06025\"\n
|
||||
\ }\n ],\n \"willpowerIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}"
|
||||
Relic.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"maxCount\": 2,\n
|
||||
\ \"id\": \"06025\"\n }\n ],\n \"willpowerIcons\": 1,\n \"cycle\": \"The
|
||||
Dream-Eaters\"\n}"
|
||||
GUID: 6692de
|
||||
Grid: true
|
||||
GridProjection: false
|
||||
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 378931
|
||||
CardID: 378922
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -19,9 +19,9 @@ CustomDeck:
|
||||
UniqueBack: false
|
||||
Description: Basic Weakness
|
||||
DragSelectable: true
|
||||
GMNotes: "{\n \"id\": \"54014\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n
|
||||
\ \"traits\": \"Curse. Omen.\",\n \"permanent\": true,\n \"weakness\": true,\n
|
||||
\ \"basicWeaknessCount\": 1,\n \"cycle\": \"Return to the Circle Undone\"\n}"
|
||||
GMNotes: "{\r\n \"id\": \"54014\",\r\n \"type\": \"Treachery\",\r\n \"class\":
|
||||
\"Neutral\",\r\n \"traits\": \"Curse. Omen.\",\r\n \"permanent\": true,\r\n \"weakness\":
|
||||
true,\r\n \"basicWeaknessCount\": 1,\r\n \"cycle\": \"Return to the Circle Undone\"\r\n}\r"
|
||||
GUID: bad8cb
|
||||
Grid: true
|
||||
GridProjection: false
|
||||
|
@ -11,8 +11,8 @@ ColorDiffuse:
|
||||
CustomDeck:
|
||||
'3795':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/1625226898126523297/2C981A8D79F76E3533ADD355F8AF406EA72B5162/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126522542/E29FEBE196344F3DEE457BE957E9AF18310C6F39/
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578166/C21CC0E4ADE06C11419F36BAEDED0BDBFF8DE5E3/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578395/F97B770FB90EA18B46F58614CCE0016406E3E777/
|
||||
NumHeight: 2
|
||||
NumWidth: 5
|
||||
Type: 0
|
||||
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94754
|
||||
CardID: 917449
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
@ -20,8 +20,8 @@ CustomDeck:
|
||||
Description: ''
|
||||
DragSelectable: true
|
||||
GMNotes: "{\n \"id\": \"10127\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n
|
||||
\ \"level\": 5,\n \"traits\": \"Condition.\",\n \"permanent\": true,\n \"cycle\":
|
||||
\"The Feast of Hemlock Vale\"\n}"
|
||||
\ \"startsInPlay\": true,\n \"level\": 5,\n \"traits\": \"Condition.\",\n \"permanent\":
|
||||
true,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}"
|
||||
GUID: d00e4d
|
||||
Grid: true
|
||||
GridProjection: false
|
||||
|
@ -41,80 +41,6 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (
|
||||
|
||||
return require, loaded, register, modules
|
||||
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)
|
||||
--[[ Library for cards that seal tokens
|
||||
This file is used to add sealing option to cards' context menu.
|
||||
@ -404,82 +330,64 @@ function resolveSealed()
|
||||
chaosBagApi.drawChaosToken(mat, true, _, guidToBeResolved)
|
||||
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
|
||||
local TokenArrangerApi = {}
|
||||
local BlessCurseManagerApi = {}
|
||||
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
|
||||
local function getManager()
|
||||
return guidReferenceApi.getObjectByOwnerAndType("Mythos", "BlessCurseManager")
|
||||
end
|
||||
|
||||
-- updates the token modifiers with the provided data
|
||||
---@param fullData table Contains the chaos token metadata
|
||||
TokenArrangerApi.onTokenDataChanged = function(fullData)
|
||||
callIfExistent("onTokenDataChanged", fullData)
|
||||
-- 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
|
||||
|
||||
-- deletes already laid out tokens
|
||||
TokenArrangerApi.deleteCopiedTokens = function()
|
||||
callIfExistent("deleteCopiedTokens")
|
||||
-- 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 laid out tokens
|
||||
TokenArrangerApi.layout = function()
|
||||
Wait.time(function() callIfExistent("layout") end, 0.1)
|
||||
-- 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
|
||||
|
||||
return TokenArrangerApi
|
||||
end
|
||||
end)
|
||||
__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
do
|
||||
local GUIDReferenceApi = {}
|
||||
|
||||
local function getGuidHandler()
|
||||
return getObjectFromGUID("123456")
|
||||
-- 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
|
||||
|
||||
---@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 })
|
||||
-- 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
|
||||
|
||||
-- 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)
|
||||
-- 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
|
||||
|
||||
-- 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)
|
||||
-- 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
|
||||
|
||||
-- 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
|
||||
return BlessCurseManagerApi
|
||||
end
|
||||
end)
|
||||
__bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
@ -564,6 +472,14 @@ do
|
||||
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")
|
||||
@ -627,6 +543,15 @@ do
|
||||
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
|
||||
@ -675,7 +600,7 @@ do
|
||||
return count
|
||||
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 type string Counter to target
|
||||
---@param newValue number Value to set the counter to
|
||||
@ -686,7 +611,7 @@ do
|
||||
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 number number Amount of cards to draw
|
||||
PlaymatApi.drawCardsWithReshuffle = function(matColor, number)
|
||||
@ -695,7 +620,7 @@ do
|
||||
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 type string Counter to target
|
||||
PlaymatApi.getCounterValue = function(matColor, type)
|
||||
@ -704,15 +629,13 @@ do
|
||||
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()
|
||||
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
|
||||
@ -720,7 +643,7 @@ do
|
||||
return usedColors
|
||||
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
|
||||
PlaymatApi.resetSkillTracker = function(matColor)
|
||||
for _, mat in pairs(getMatForColor(matColor)) do
|
||||
@ -728,7 +651,7 @@ do
|
||||
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 filter string Name of the filte function (see util/SearchLib)
|
||||
PlaymatApi.searchAroundPlaymat = function(matColor, filter)
|
||||
@ -759,6 +682,9 @@ do
|
||||
return PlaymatApi
|
||||
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)
|
||||
VALID_TOKENS = {
|
||||
["Curse"] = true
|
||||
@ -768,64 +694,38 @@ KEEP_OPEN = true
|
||||
|
||||
require("playercards/CardsThatSealTokens")
|
||||
end)
|
||||
__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
do
|
||||
local BlessCurseManagerApi = {}
|
||||
local TokenArrangerApi = {}
|
||||
local guidReferenceApi = require("core/GUIDReferenceApi")
|
||||
|
||||
local function getManager()
|
||||
return guidReferenceApi.getObjectByOwnerAndType("Mythos", "BlessCurseManager")
|
||||
-- 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
|
||||
|
||||
-- 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)
|
||||
-- updates the token modifiers with the provided data
|
||||
---@param fullData table Contains the chaos token metadata
|
||||
TokenArrangerApi.onTokenDataChanged = function(fullData)
|
||||
callIfExistent("onTokenDataChanged", fullData)
|
||||
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 })
|
||||
-- deletes already laid out tokens
|
||||
TokenArrangerApi.deleteCopiedTokens = function()
|
||||
callIfExistent("deleteCopiedTokens")
|
||||
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 })
|
||||
-- updates the laid out tokens
|
||||
TokenArrangerApi.layout = function()
|
||||
Wait.time(function() callIfExistent("layout") end, 0.1)
|
||||
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
|
||||
return TokenArrangerApi
|
||||
end
|
||||
end)
|
||||
__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
@ -902,8 +802,9 @@ do
|
||||
---@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 guidToBeResolved? string GUID of the sealed token to be resolved instead of drawing a token from the bag
|
||||
ChaosBagApi.drawChaosToken = function(mat, drawAdditional, tokenType, guidToBeResolved)
|
||||
return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional, tokenType = tokenType, guidToBeResolved = guidToBeResolved})
|
||||
---@param returnedToken? tts__Object Token to be replaced with newly drawn token
|
||||
ChaosBagApi.drawChaosToken = function(mat, drawAdditional, tokenType, guidToBeResolved, returnedToken)
|
||||
return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional, tokenType = tokenType, guidToBeResolved = guidToBeResolved, returnedToken = returnedToken})
|
||||
end
|
||||
|
||||
-- returns a Table List of chaos token ids in the current chaos bag
|
||||
@ -915,4 +816,127 @@ do
|
||||
return ChaosBagApi
|
||||
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")
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94756
|
||||
CardID: 917453
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -115,8 +115,9 @@ do
|
||||
---@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 guidToBeResolved? string GUID of the sealed token to be resolved instead of drawing a token from the bag
|
||||
ChaosBagApi.drawChaosToken = function(mat, drawAdditional, tokenType, guidToBeResolved)
|
||||
return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional, tokenType = tokenType, guidToBeResolved = guidToBeResolved})
|
||||
---@param returnedToken? tts__Object Token to be replaced with newly drawn token
|
||||
ChaosBagApi.drawChaosToken = function(mat, drawAdditional, tokenType, guidToBeResolved, returnedToken)
|
||||
return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional, tokenType = tokenType, guidToBeResolved = guidToBeResolved, returnedToken = returnedToken})
|
||||
end
|
||||
|
||||
-- returns a Table List of chaos token ids in the current chaos bag
|
||||
@ -136,6 +137,7 @@ do
|
||||
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
|
||||
@ -143,21 +145,21 @@ do
|
||||
return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type })
|
||||
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
|
||||
---@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
|
||||
-- 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
|
||||
-- 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
|
||||
@ -169,83 +171,308 @@ do
|
||||
})
|
||||
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)
|
||||
__bundle_register("playermat/PlaymatApi", 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
|
||||
}
|
||||
local PlaymatApi = {}
|
||||
local guidReferenceApi = require("core/GUIDReferenceApi")
|
||||
local searchLib = require("util/SearchLib")
|
||||
|
||||
-- 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]
|
||||
-- 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
|
||||
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
|
||||
})
|
||||
end
|
||||
|
||||
-- filtering the result
|
||||
-- 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
|
||||
resultTable[color] = {
|
||||
position = mat.positionToWorld(localPositionTable[helperName]),
|
||||
rotation = mat.getRotation()
|
||||
}
|
||||
end
|
||||
return resultTable
|
||||
end
|
||||
|
||||
|
||||
-- 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 = {}
|
||||
for _, v in ipairs(searchResult) do
|
||||
if not filter or filterFunc(v.hit_object) then
|
||||
table.insert(objList, v.hit_object)
|
||||
for _, mat in pairs(getMatForColor(matColor)) do
|
||||
for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do
|
||||
table.insert(objList, obj)
|
||||
end
|
||||
end
|
||||
return objList
|
||||
end
|
||||
|
||||
-- searches the specified area
|
||||
SearchLib.inArea = function(pos, rot, size, filter)
|
||||
return returnSearchResult(pos, rot, size, filter)
|
||||
-- Discard a non-hidden card from the corresponding player's hand
|
||||
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
|
||||
PlaymatApi.doDiscardOne = function(matColor)
|
||||
for _, mat in pairs(getMatForColor(matColor)) do
|
||||
mat.call("doDiscardOne")
|
||||
end
|
||||
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)
|
||||
-- Triggers the metadata sync for all playmats
|
||||
PlaymatApi.syncAllCustomizableCards = function()
|
||||
for _, mat in pairs(getMatForColor("All")) do
|
||||
mat.call("syncAllCustomizableCards")
|
||||
end
|
||||
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
|
||||
return PlaymatApi
|
||||
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)
|
||||
VALID_TOKENS = {
|
||||
["Elder Sign"] = true
|
||||
@ -253,6 +480,103 @@ VALID_TOKENS = {
|
||||
|
||||
require("playercards/CardsThatSealTokens")
|
||||
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)
|
||||
--[[ Library for cards that seal tokens
|
||||
This file is used to add sealing option to cards' context menu.
|
||||
@ -542,375 +866,75 @@ function resolveSealed()
|
||||
chaosBagApi.drawChaosToken(mat, true, _, guidToBeResolved)
|
||||
end
|
||||
end)
|
||||
__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
__bundle_register("util/SearchLib", function(require, _LOADED, __bundle_register, __bundle_modules)
|
||||
do
|
||||
local TokenArrangerApi = {}
|
||||
local guidReferenceApi = require("core/GUIDReferenceApi")
|
||||
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
|
||||
}
|
||||
|
||||
-- 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)
|
||||
-- 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
|
||||
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
|
||||
})
|
||||
|
||||
-- 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}
|
||||
}
|
||||
|
||||
for color, mat in pairs(getMatForColor(matColor)) do
|
||||
resultTable[color] = {
|
||||
position = mat.positionToWorld(localPositionTable[helperName]),
|
||||
rotation = mat.getRotation()
|
||||
}
|
||||
end
|
||||
return resultTable
|
||||
end
|
||||
|
||||
|
||||
-- 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)
|
||||
-- filtering the result
|
||||
local objList = {}
|
||||
for _, mat in pairs(getMatForColor(matColor)) do
|
||||
for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do
|
||||
table.insert(objList, obj)
|
||||
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
|
||||
|
||||
-- Discard a non-hidden card from the corresponding player's hand
|
||||
---@param matColor string Color of the playmat - White, Orange, Green, Red or All
|
||||
PlaymatApi.doDiscardOne = function(matColor)
|
||||
for _, mat in pairs(getMatForColor(matColor)) do
|
||||
mat.call("doDiscardOne")
|
||||
end
|
||||
-- searches the specified area
|
||||
SearchLib.inArea = function(pos, rot, size, filter)
|
||||
return returnSearchResult(pos, rot, size, filter)
|
||||
end
|
||||
|
||||
-- Triggers the metadata sync for all playmats
|
||||
PlaymatApi.syncAllCustomizableCards = function()
|
||||
for _, mat in pairs(getMatForColor("All")) do
|
||||
mat.call("syncAllCustomizableCards")
|
||||
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
|
||||
|
||||
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)
|
||||
return __bundle_require("__root")
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 400
|
||||
CardID: 917441
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'4':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009070978111/18BFD42CF7BACCF65559E63F576AF35920520FDB/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: Friend or Foe?
|
||||
@ -34,7 +34,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: '"Devil" (2)'
|
||||
SidewaysCard: false
|
||||
Snap: true
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94725
|
||||
CardID: 917367
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
@ -34,7 +34,7 @@ LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: Card
|
||||
Nickname: Diabolical Luck (0)
|
||||
Nickname: Diabolical Luck
|
||||
SidewaysCard: false
|
||||
Snap: true
|
||||
Sticky: true
|
@ -20,7 +20,7 @@ CustomDeck:
|
||||
Description: Leave No Doubt
|
||||
DragSelectable: true
|
||||
GMNotes: "{\n \"id\": \"90029\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n
|
||||
\ \"permanent\": true,\n \"cycle\": \"Standalone\"\n}"
|
||||
\ \"startsInPlay\": true,\n \"permanent\": true,\n \"cycle\": \"Standalone\"\n}"
|
||||
GUID: 07e7bd
|
||||
Grid: true
|
||||
GridProjection: false
|
||||
|
@ -20,7 +20,7 @@ CustomDeck:
|
||||
Description: Consult Experts
|
||||
DragSelectable: true
|
||||
GMNotes: "{\n \"id\": \"90027\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n
|
||||
\ \"permanent\": true,\n \"cycle\": \"Standalone\"\n}"
|
||||
\ \"startsInPlay\": true,\n \"permanent\": true,\n \"cycle\": \"Standalone\"\n}"
|
||||
GUID: 2d9256
|
||||
Grid: true
|
||||
GridProjection: false
|
||||
|
@ -3,16 +3,16 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 94729
|
||||
CardID: 917402
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'947':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2286207513864999779/940B69318E315879D88F91454332BB6D0DFB03B6/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -11,8 +11,8 @@ ColorDiffuse:
|
||||
CustomDeck:
|
||||
'3794':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/1625226898126523297/2C981A8D79F76E3533ADD355F8AF406EA72B5162/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126522542/E29FEBE196344F3DEE457BE957E9AF18310C6F39/
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578166/C21CC0E4ADE06C11419F36BAEDED0BDBFF8DE5E3/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578395/F97B770FB90EA18B46F58614CCE0016406E3E777/
|
||||
NumHeight: 2
|
||||
NumWidth: 5
|
||||
Type: 0
|
||||
|
@ -11,8 +11,8 @@ ColorDiffuse:
|
||||
CustomDeck:
|
||||
'3794':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/1625226898126523297/2C981A8D79F76E3533ADD355F8AF406EA72B5162/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126522542/E29FEBE196344F3DEE457BE957E9AF18310C6F39/
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578166/C21CC0E4ADE06C11419F36BAEDED0BDBFF8DE5E3/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578395/F97B770FB90EA18B46F58614CCE0016406E3E777/
|
||||
NumHeight: 2
|
||||
NumWidth: 5
|
||||
Type: 0
|
||||
|
@ -11,8 +11,8 @@ ColorDiffuse:
|
||||
CustomDeck:
|
||||
'3794':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/1625226898126523297/2C981A8D79F76E3533ADD355F8AF406EA72B5162/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126522542/E29FEBE196344F3DEE457BE957E9AF18310C6F39/
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578166/C21CC0E4ADE06C11419F36BAEDED0BDBFF8DE5E3/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578395/F97B770FB90EA18B46F58614CCE0016406E3E777/
|
||||
NumHeight: 2
|
||||
NumWidth: 5
|
||||
Type: 0
|
||||
|
@ -11,8 +11,8 @@ ColorDiffuse:
|
||||
CustomDeck:
|
||||
'3794':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/1625226898126523297/2C981A8D79F76E3533ADD355F8AF406EA72B5162/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126522542/E29FEBE196344F3DEE457BE957E9AF18310C6F39/
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578166/C21CC0E4ADE06C11419F36BAEDED0BDBFF8DE5E3/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578395/F97B770FB90EA18B46F58614CCE0016406E3E777/
|
||||
NumHeight: 2
|
||||
NumWidth: 5
|
||||
Type: 0
|
||||
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 378939
|
||||
CardID: 378930
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,7 +3,7 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 378941
|
||||
CardID: 378932
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3789':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126493809/0EE7F5B9B916B56425CAC1C46F7FCEF9DBF55112/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430579575/1F73F1B9316F11895AAD6A82B9AF2E2398FAD2F6/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 12105
|
||||
CardID: 917333
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'121':
|
||||
'9173':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/
|
||||
NumHeight: 2
|
||||
NumWidth: 6
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632272/9A953338B599473C1631AA82F75004CE941DA8B0/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: Knows His Purpose
|
||||
|
@ -0,0 +1,57 @@
|
||||
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: ''
|
@ -12,7 +12,7 @@ CustomDeck:
|
||||
'3790':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/1625226898126491470/A7FAFA92C08268717F79B2B1C83F8C23DFA6C534/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430578722/34A938F2AE5FCEDEF07D645346F9A6570FFF98E4/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
|
@ -3,18 +3,18 @@ AltLookAngle:
|
||||
y: 0
|
||||
z: 0
|
||||
Autoraise: true
|
||||
CardID: 125100
|
||||
CardID: 917416
|
||||
ColorDiffuse:
|
||||
b: 0.71324
|
||||
g: 0.71324
|
||||
r: 0.71324
|
||||
CustomDeck:
|
||||
'1251':
|
||||
'9174':
|
||||
BackIsHidden: true
|
||||
BackURL: http://cloud-3.steamusercontent.com/ugc/2342503777940352139/A2D42E7E5C43D045D72CE5CFC907E4F886C8C690/
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008872128231/B3D4EF69ABE3736988B015629C5862F69EB42BDC/
|
||||
NumHeight: 1
|
||||
NumWidth: 1
|
||||
FaceURL: http://cloud-3.steamusercontent.com/ugc/2424696374430632751/4F8200D4B672882FF609D4B1B9D438C61AF20447/
|
||||
NumHeight: 7
|
||||
NumWidth: 10
|
||||
Type: 0
|
||||
UniqueBack: false
|
||||
Description: ''
|
||||
@ -33,7 +33,7 @@ Locked: false
|
||||
LuaScript: ''
|
||||
LuaScriptState: ''
|
||||
MeasureMovement: false
|
||||
Name: CardCustom
|
||||
Name: Card
|
||||
Nickname: Drain Essence
|
||||
SidewaysCard: false
|
||||
Snap: true
|
@ -21,9 +21,9 @@ Description: Dreams of an Explorer
|
||||
DragSelectable: true
|
||||
GMNotes: "{\n \"id\": \"06236\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n
|
||||
\ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item.
|
||||
Tome. Charm.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\": \"06113\"\n
|
||||
\ }\n ],\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The
|
||||
Dream-Eaters\"\n}"
|
||||
Tome. Charm.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"maxCount\":
|
||||
1,\n \"id\": \"06113\"\n }\n ],\n \"willpowerIcons\": 1,\n \"agilityIcons\":
|
||||
1,\n \"cycle\": \"The Dream-Eaters\"\n}"
|
||||
GUID: 5f9a10
|
||||
Grid: true
|
||||
GridProjection: false
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user